首页 >后端开发 >C++ >为什么 cin 只读取用户输入的第一个字?

为什么 cin 只读取用户输入的第一个字?

Patricia Arquette
Patricia Arquette原创
2024-12-06 01:59:11557浏览

Why Does `cin` Only Read the First Word of User Input?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn