c - 文件输出不正确

标签 c file file-handling tdm-gcc

我正在尝试将一些数据输入到文件中,然后在控制台上读取并打印它。

这是我的代码:

  fp=fopen("user1","w+");
  char line[1000];
  char *c;
  //write on file

  while(1)
  {
      fgets(line,sizeof(line),stdin);
      if(strcmp(line,":wq\n")==0)   //input ends when user enters :wq
          break;
      else
          fputs(line,fp);
  }
  //read from file
  fflush(stdin);

  while(1)
  {
      c=fgetc(fp);
      if(c==EOF)
          break;
      else
          printf("%ch",c);
   }

我输入的数据为

bjsa

:wq

输出:

 h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h  h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h 

问题是什么?

最佳答案

我发现两个问题

1) 您的 fgetc 分配给一个字符点。那是错的。它应该是一个整数

2)写入文件后,应关闭它,然后再打开它进行读取

类似于:

  fp=fopen("user1","w+");
  char line[1000];
  int c;             // notice ......

  //write on file    
  while(1)
  {
      fgets(line,sizeof(line),stdin);
      if(strcmp(line,":wq\n")==0)   //input ends when user enters :wq
          break;
      fputs(line,fp);
  }
  fclose(fp);


  //read from file
  fp=fopen("user1","r");
  while(1)
  {
      c=fgetc(fp);
      if(c==EOF)
          break;
      printf("%ch",c);
  }
  fclose(fp);

关于c - 文件输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46814809/

相关文章:

c - libblkid 仅适用于 root 并且以 root 身份运行后

file - 如何遍历 R 脚本中的文件名?

c++ - 为什么这段代码总是返回零文件大小?

c# - 读取文件的最有效方式

c# - 从应用程序安装文件夹的子文件夹中读取文件

linux - 如何检查 Bash 中的文件是否为空?

C 可变参数函数未按预期工作

c - 直接写入不同进程的stdout

c - 我收到此错误 "solution.c:9:4: warning: implicit declaration of function ' stricmp' [-Wimplicit-function-declaration] x= stricmp(ap,c);"

Java ASCII 输出到文件