我正在閱讀 C 中的 IO 流并具有以下代碼
int main() {
fstream output_file;
output_file.open("cout.txt", ios::out);
fstream input_file;
input_file.open("cin.txt", ios::in);
// backup existing stream buffers
streambuf* cin_old_streambuf = cin.rdbuf();
streambuf* cout_old_streambuf = cout.rdbuf();
// Get output stream buffer of file and redirect to cout
streambuf* output_file_streambuf = output_file.rdbuf();
cout.rdbuf(output_file_streambuf);
// Get input stream buffer of file and redirect to cin
streambuf* input_file_streambuf = input_file.rdbuf();
cin.rdbuf(input_file_streambuf);
/* What ever you do with cout will write to file. */
string line;
getline(cin, line);
cout << line;
getline(cin, line);
cout << line;
getline(cin, line);
cout << line;
getline(cin, line);
cout << line;
}
我的輸入檔案cin.txt
My name is
ravi
My age is
45
輸出檔案cout.txt是
My name israviMy age is 45
我的問題是為什么程式沒有在輸入中讀取 \n 。我的理解是getline讀取換行符。我期待輸出檔案類似于輸入檔案。請幫助我必須做哪些改變
uj5u.com熱心網友回復:
雖然getline(cin, line);確實逐行從您的其他檔案中檢索輸入,但如果您在列印時想要新行,cout << line;您仍應遵循在行尾添加"\n"或添加的標準。endl;cout
代碼的最后一部分應如下所示。
getline(cin, line);
cout << line << endl;
getline(cin, line);
cout << line << endl;
getline(cin, line);
cout << line << endl;
getline(cin, line);
cout << line << endl;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425980.html
