【问题标题】:Why is my program reading more than just the first line of my txt file?为什么我的程序读取的不仅仅是我的 txt 文件的第一行?
【发布时间】:2023-03-11 20:45:01
【问题描述】:

我无法获取 txtfile.txt 的第一行。我尝试更改第二个参数中的数字并完全删除它。没有任何效果,由于某种原因,我不能单独抓住 1。

int main() {
ifstream fin; 
char ex1[100];
fin.open("txtfile.txt");
if (fin.is_open()) {
    cout << "YES FILE OPENED" << endl; //testing if file opened
}
while (fin.peek() != EOF){
    fin.getline(ex1, 100, '\n');
    cout << ex1 << endl;
    }
}

txtfile.txt:下面

1
ABC
2

【问题讨论】:

标签: c++ file io ifstream getline


【解决方案1】:
    int main()
    {
       ifstream fin; 
       char ex1[100];
       fin.open("txtfile.txt");
       if (fin)
       {        
          while (!fin.eof())
          {
             fin.getline(ex1, 100, '\n');
             cout << ex1 << endl;
          }
          fin.close();
       }
     }

【讨论】:

    【解决方案2】:

    如果您只想要第一行,请在获取第一行后从 while 循环中中断:

    while (fin.peek() != EOF){
        fin.getline(ex1, 100, '\n');
        cout << ex1 << endl;
        break;
        }
    }
    

    【讨论】:

    • 由于某种原因,'\n' 不起作用,整个文件都打印出来了
    • 尝试使用 fin.getline(ex1, 100)。删除 '\n' 分隔符。
    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 2021-04-09
    • 2018-09-14
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多