c - fgets 读取特定大小

标签 c input fopen fgets

我正在尝试编写一个程序,从命令行给出的文件名中读取一定数量的字符。这是我所拥有的:

#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/

相关文章:

c - 卵石时间颜色配置

c - gcc 和 clang 中的 C99 支持不一致

html - 如何将占位符文本附加到预填充的数字输入?

forms - 如何更改提交按钮类?

c - 写入该文件时来自单个文件的多个缓冲输入流?

C 编译器在表达式中的前/后增量求值

C++ 代码和来自 C 的对象?

java - 如何在java Scanner类的while循环中使用OR条件?

c - 从文件中读取并设置偏移量?

c - 如何避免在 C 中使用非空终止的缓冲区调用 fopen()?