使用 cin从用户读取完整行
尝试使用 cin
读取用户输入的完整行时,开发人员经常遇到只捕获第一个单词的问题。为了解决这个问题,必须使用正确的行提取方法。在给定的 C 代码中,您使用了 cin >> y;
收集用户输入。但是,这种方法只能读取第一个空格字符,因此只能捕获单个单词。要有效读取整行输入,请切换到使用 getline(cin, response) ;
。这是代码的更新版本:#include <iostream> #include <string> using namespace std; int main() { 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); // Use getline instead of cin >> ofstream file; file.open("Characters.txt"); file << strlen(response) << " Characters." << endl; file << endl; file << response; file.close(); cout << "Done. \a" << endl; } else { cout << "K, Bye." << endl; } }
通过利用 getline
,您现在可以有效地捕获整行输入,解决仅读取单个单词的问题。以上是为什么 cin 只读取用户输入的第一个字?的详细内容。更多信息请关注PHP中文网其他相关文章!