#define fileSize 100000
int main(int argc, char *argv[]){
char *name=argv[1];
char ret[fileSize];
FILE *fl = fopen(name, "rb");
fseek(fl, 0, SEEK_END);
long len = fileSize;
fseek(fl, 0, SEEK_SET);
//fread(ret, 1, len, fl);
int i;
*(ret+fileSize) = '\0';
for (i=0; i<fileSize; i++){
*(ret+i)=fgetc(fl);
printf("byte : %s \n", ret);
}
fclose(fl);
}
在上面的代码中,当我输入jpeg文件的名称时,它会将第4个字符后面的任何内容读取为“……有什么想法吗?谢谢!
最佳答案
这是因为%s试图打印出一个字符串。它通过查找空字符(字节值为0)来检测字符串的结尾。所以,它可能根本不输出空格,而是不输出任何内容或空字符串,因为它遇到一个值为0的字节。
关于c - 为什么此代码读取第四个字符后的所有内容为“”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2589532/