IIlIIlllIIll 2015-11-12 02:50 采纳率: 60%
浏览 2005

C语言 用fgets()或fscanf()分别读取两个文件流出错

C Primer Plus第十三章第7题a:编写一个打开两个文件的程序,让程序打印第一个文件的第一行,第二个文件的第一行,第一个文件的第二行,第二个文件的第二行,以此类推,直到打印完行数较多的文件的最后一行。
我尝试在while循环中用两个fgets()分别读取两个文件的一行,然后用fputs()打印,结果出来一堆“烫”(乱码),文件的正确内容也参杂在其中。以下是部分程序代码和截图(两个文件中的内容分别是A(回车)C E; B D F)

    while((fscanf(fp1, "%s", &first) == 1 && first[0] != '\0') ||
          (fscanf(fp2, "%s", &second) == 1 && second[0] != '\0'))
    {
        puts(first);
        puts(second);
    }

错误结果
网上的答案中用的是getc逐字符读取,难道不能逐行或逐单词读取吗?

  • 写回答

2条回答 默认 最新

  • 关注

    可能是写和读的编码不一样吧

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题