C编程: Reading from file and printing to console

标签 c file io console fgets

晚上好,

我知道有类似的问题,我一直在筛选这些问题,但这个特定问题似乎是独一无二的。

我试图弄清楚如何简单地将文本文件读入字符串,然后将该字符串写入标准输出。我尝试了这段代码,但是当我调用 put() 时,控制台中没有任何反应。 file.txt 正确生成,写入“hello”,但最后一个 if 语句由于某种原因似乎不起作用,因为它没有达到我的测试条件。我怎样才能使其发挥作用?

这是网上很多很多示例给出的代码,仅稍作修改:

#include <stdio.h>

int main()
{
    FILE *fp;
    char str[60];

    fp = fopen("file.txt","w+");
    fprintf(fp,"%s","hello");
    if(fp==NULL){
        perror("Error opening file");
        return(-1);
    }
    if (fgets (str, 60, fp)!=NULL)
        puts(str);
        printf("%s","test");
    fclose(fp);
return 0;
}

最佳答案

当您调用fgets()时,文件指针已经位于文件末尾。在 fgets() 之前添加对 rewind(fp) 的调用。

哦,当您打开文件时,请在调用 fprintf() 之前检查 fp==NULL

关于C编程: Reading from file and printing to console,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060059/

相关文章:

file - Erlang 从文件中读取前 5 行

file - 组织大量文件上传

c - 我在 C 语言中遇到用于合并排序的动态分配数组的段错误(核心转储)错误?

c++ - 为什么给数组中的第一个元素赋值时必须指定索引号?

即使不包含 header ,也无法将标准库函数名称用于全局变量

java - 使用 Netty 或其他轻量级 NIO 库的请求-响应

io - 如何在 Julia 中读取具有特定字节大小(32 位)值的二进制文件?

c - 使用较短的延迟读取 PIC 的 ADC 模块的效果(在 PIC C 中)

Python日志记录 - 检查日志文件的位置?

java - 如何使用 scala.io.Source 删除字节顺序标记?