C fread char代码块

问题描述:

我试图运行一个简单的程序Codeblocks 16.11。我被卡住试图读取从下面的代码文件的字符...C fread char代码块

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它只是一个txt以“ABCDEFGHIJK”里写道。我期待看到一个m = 1的printf,但我一直在控制台中取得m = 0。

+2

注意'PERROR()'报告错误,但不返回。如果打开文件时出错,您的代码将继续使用未打开的文件句柄。这对你的程序的健康没有好处。 –

首先检查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 
+0

你是完全正确的。这样一个简单的错误。非常感谢你” – Asdemuertes