【问题标题】:Program to read data from keyboard, write it to a file and again read the same data from the file and copy that to another file and display? [closed]程序从键盘读取数据,将其写入文件,然后再次从文件中读取相同的数据并将其复制到另一个文件并显示? [关闭]
【发布时间】:2012-12-28 21:43:14
【问题描述】:

这就是我迄今为止所做的。我希望程序从键盘读取数据将其写入一个名为 INPUT 的文件,再次从 INPUT 文件中读取相同的数据,然后复制到该文件 另一个文件并将其显示在屏幕上。 我不知道我哪里出错了。 请帮我。 提前致谢。

#include<stdio.h>
#include<file.h>
main()
{
  FILE *f1,*f2;
  char c;
  printf(“data input\n\n”)
  f1 = fopen(“INPUT”, “w”);
  while((c = getchar())!=EOF)
    putc(c,f1);
  fclose(f1);
  printf(“\ndata output\n\n”)
  f1 = fopen(“INPUT”, “r”);
  while((c = getchar())!=EOF)
    putc(“%c”,c);
  fclose(f1);
  //copying f f1 data into f2
  f1=fopen(file1,”r”)
  if(f1=NULL)
  {
    printf(“no data”);
    exit(0):
  }
  f2=fopen(file2,”w”);
  if(f2=null)
  {
    printf(“cannot able to open”);
    exit(0);
  }
  while((ch==getc(f1)!=EOF)
    putc(ch,f2);
  printf(“completed”);
  fclose(f1);
  fclose(f2);
}

【问题讨论】:

  • 逐行浏览代码,注意写、读和打印的内容。
  • 你没有指定你的问题,所以我认为这不会编译。 C 语法区分大小写。您所要做的就是阅读编译器给出的错误并修复您的代码
  • 修复小写/大写不匹配后,您还应该在以下部分添加一些 cmets:1) 将键盘复制到 INPUT 和 2) 将 INPUT 复制到另一个文件并显示。它会帮助你按照@RaymondChen 的建议去做。
  • C 中的注释看起来像这样 /* 在这里注释 */ 我建议的应该放在他们自己的一行上
  • 不要使用文字处理器来编辑 C 代码。您的“双引号”不同的是 (U+201C) 和 (U+201D) 而不是预期的 " (ASCII 34, U+0022)。此外,printf() 不会打印换行符,除非您要求。大多数printf() 调用应在格式字符串的末尾至少包含一个换行符\n。当报告有关打开文件的错误时,在错误报告中包含文件名是明智的(如果您知道是哪个文件导致了问题,则更容易找到问题)。

标签: c file-io input output


【解决方案1】:

你想和NULL比较:

  if(f1=NULL)

但这会分配 NULL。

另一个比较中的相同问题:

  if(f2=null)

只需将它们更改为:

if(!f1)

if(!f2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2015-12-29
    • 2011-12-06
    • 1970-01-01
    相关资源
    最近更新 更多