You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取输入文件输出不符预期:为何代码仅打印字符'g'?

问题排查与解决
  • 你遇到的只输出'g'的问题,核心是输出语句里的换行符写错了:代码里cout << " ";大概率是误写成了cout << "\r";(回车符)。回车符会让光标回到当前行的开头,后面输出的每个字符都会覆盖掉前面的,最后就只剩最后一个字符'g'显示在控制台。

  • 另外,你要输出除'g'之外的所有字符,但当前代码逻辑是读啥输出啥,哪怕修复换行问题,也会把所有字符都打出来。要实现预期效果,得在输出前加个判断:

    if (ch != 'g') {
        cout << ch << "\n";
    }
    
  • 顺便给你优化下代码逻辑:

    • 没必要写死循环加fail判断,直接用while (file >> ch)就行,这个写法本身就会在读取失败时终止循环,更简洁:
      while (file >> ch) {
          if (ch != 'g') {
              cout << ch << "\n";
          }
      }
      
    • file.close()可以删掉,fstream对象在程序结束时会自动关闭文件,手动调用多此一举。

内容的提问来源于stack exchange,提问作者Omar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:05:01