简体   繁体   English

为什么我的 output 得到负 1 个字节?

[英]Why am I getting negative one bytes for my output?

I tried to develop a simple metadata visualizer tool using C for visualizer engine for "png" file but I'm getting -1 for my output and I don't know why.我尝试使用 C 为“png”文件的可视化引擎开发一个简单的元数据可视化工具,但我的 output 得到-1,我不知道为什么。 Can someone show me where is the error?有人可以告诉我错误在哪里吗?

#include <stdio.h> #include <stdio.h>

int main ()
{
    FILE *file_input;
    unsigned char c; //unsigned
    long int counter=0L;
    long int saizFail, curPos=0L, current=0L;
    
    if ((file_input = fopen("C:\\Users\\User\\Pictures\\timetable.png", "rb"))=NULL)
         printf("File cannot be opened");
                 
    fseek(file_input, 0L, SEEK_END); //
    saizFail=ftell(file_input);
    rewind(file_input);
    
    printf("File size = %ld bytes\n\n", saizFail);
    
    while (counter<100)
    {
        c=fgetc(file_input);
        printf("counter %ld >> %X\n", counter, c);
        counter++;
        
    }
    
    printf(">>File size = %ld bytes\n\n", saizFail);
    
    fclose(file_input);
    getchar();
}

You meant to use == , but used = instead.您打算使用== ,但使用=代替。

This line:这一行:

if ((file_input = fopen("C:\\Users\\User\\Pictures\\timetable.png", "rb"))=NULL)

Should be:应该:

if ((file_input = fopen("C:\\Users\\User\\Pictures\\timetable.png", "rb"))==NULL)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM