使用混合类型的>>和获取线

Using mixed type of >> and getline

本文关键字:gt 获取 混合 类型      更新时间:2023-10-16

我的任务是将字符串输入输入到字符数组中。它是这样的:

char name[30];
cin>>name;
cin.getline(name,29);
cout<<name;

对应的输入为:Ly Nguyen Khang结果只返回Nguyen Khang请任何人帮助我了解这是怎么回事:(

我的代码部分:

#define INPUT_HELP_NAME "Please input name: "
#define INPUT_HELP_PHONE "Phone: "
    cout << INPUT_HELP_NAME;
        cin.getline(res->name, MAX_NAME_LENGTH-1);
        cout << INPUT_HELP_PHONE;
        cin >> res->phone;

运行时,显示如下内容:

Please input name : Phone : 

你用了两次cin,导致它不工作。正确的做法是:

char name[30];
cin.getline(name,29);
cout<<name;

cin.getline(name,29);已经是cin了,所以不需要cin>>name;,这使得你的结果改变,因为你的代码对cin说了两次。