我试着用代码块16.11运行一个简单的程序。在下面的代码中,我试图从一个文件中读取一个字符。。。
FILE *fo;
FILE *ft;
char c;
if ((fo = fopen("mayus.txt", "r")) == NULL){
perror("opening mayus");
}
int m;
m= fread(c, 1, 1, fo);
printf("I just read for the first time with result m = %d\n",m);
我的文件mayus.txt只是一个里面写着“AbCDEFGHIjK”的txt。我希望看到m=1的printf,但我一直在控制台中得到m=0。
最佳答案
首先检查fread
原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
所以m= fread(c, 1, 1, fo);
是错误的
你需要的是
m = fread(&c, 1, 1, fo); // the first param should be a pointer to the buffer
关于c - C fread char代码块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40966495/