使用 Cin 从用户读取整行
在您提供的 C 代码中,您的目标是将一行文本写入文件,但是您遇到一个问题,即只写入一个单词而不是整行。解决方案在于代码对用户输入的处理。
代码使用 cin >> y 从用户处读取字符,但这仅捕获输入的第一个字符。要读取整行,需要使用不同的方法。
而不是 cin >> y,使用以下代码:
string response; getline(cin, response);
这一行使用 getline 从用户读取整行文本。输入的文本将存储在字符串变量response中。
以下是如何将此更改合并到您的代码中:
char x; cout << "Would you like to write to a file?" << endl; cin >> x; if (x == 'y' || x == 'Y') { string response; cout << "What would you like to write." << endl; getline(cin, response); ofstream file; file.open("Characters.txt"); file << strlen(response.c_str()) << " Characters." << endl; file << endl; file << response; // Now writes the entire line file.close(); cout << "Done. \a" << endl; } else { cout << "K, Bye." << endl; }
通过使用 getline 读取完整的行,您现在可以有效地将多字回复写入您的文件。
以上是如何用 C 语言读取用户的整行文本?的详细内容。更多信息请关注PHP中文网其他相关文章!