gpt4 book ai didi

c++ - 为什么我需要 std::endl 来重现我用 getline() 得到的输入行?

转载 作者:行者123 更新时间:2023-12-05 03:19:46 25 4
gpt4 key购买 nike

我是一个新手,正在学习 C++ 来读取或写入文件。我搜索了如何从文件中读取所有内容并得到了可以使用 while 循环的答案。

string fileName = "data.txt";
string line ;
ifstream myFile ;
myFile.open(fileName);
while(getline(myFile,line)){
cout << line << endl;
}

data.txt有三行内容,输出如下。

Line 1
Line 2
Line 3

但如果我删除 "endl"并且只使用 cout<<line;在 while 循环的大括号中,输出变为:

 Line 1Line 2Line 3

据我了解,while循环执行了3次,背后的逻辑是什么?

最佳答案

endl 表示“结束行”,它做了两件事:

  1. 将输出光标移动到下一行。
  2. 刷新输出,如果您正在写入文件,这意味着文件将立即更新。

通过删除 endl,您将所有输入行写入单个输出行,因为您从未告诉 cout 转到下一行。

关于c++ - 为什么我需要 std::endl 来重现我用 getline() 得到的输入行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73349982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com