我正在尝试编写一个程序,从命令行给出的文件名中读取一定数量的字符。这是我所拥有的:
#include <stdio.h>
int main(int argc, char **argv)
{
int i = 0;
FILE *f;
char* fileName = argv[1];
char buf[40];
f = fopen(fileName, "r");
while(!feof(f)){
fgets(buf, 10, f);
printf("%s\n", buf);
}
fclose(f);
return 1;
}
假设在这种特殊情况下,我需要前 10 个字符,然后是接下来的 10 个字符,依此类推,直到文件结束。然而,当我运行这段代码时,它实际上并没有给我正确的输出。我也尝试了 11,因为文档说 fgets() 读取 n-1 个字符,但这也不起作用。一开始读了一些东西,但后来什么也没有读,它只是给了我一堆空白。知道出了什么问题吗?
谢谢
最佳答案
您正在寻找的函数是fread
,如下所示:
fread(buf, 10, 1, f);
关于c - fgets 读取特定大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936658/