标题:如何读取多个单词
只看楼主
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
结帖率:90.38%
已结贴  问题点数:20 回复次数:5 
如何读取多个单词
这段代码对于name结构成员只能读取一个单词,无法读取多个单词,例如只能读取hello,无法读取hello world。如何让它读取多个单词?如何修改?
程序代码:
#include<iostream>
#include<cstring>
struct candbar{
    char name[20];
    float heavy;
    int kaluli;
};
int main(){
    using namespace std;
    candbar snak;
    cin>>snak.name;
    cin>>snak.heavy;
    cin>>snak.kaluli;
    cout<<snak.name<<endl<<snak.heavy<<endl<<snak.kaluli;
    return 0;
}
搜索更多相关主题的帖子: name 多个 单词 读取 cin 
2020-08-15 00:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:7 
自己的逻辑要搞清,
假如输入 1 2 3 4 5,
那么 1 是名字,2 是重量,3 是卡路里,4 5 是多余数据?
还是 1 2 是名字,3 是重量,4 是卡路里,5 是多余数据?
还是 1 2 3 是名字,4 是重量,5 是卡路里?
还是 1 2 3 4 是名字,5 是重量?
……
2020-08-15 09:50
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
得分:0 
回复 2楼 rjsp
第一次输入为名字,第二次输入为重量,第三次输入为卡路里。
2020-08-15 17:06
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
得分:0 
回复 rjsp
修改如下:
程序代码:
#include<iostream>
#include<cstring>
struct candbar{
    char name[20];
    float heavy;
    int kaluli;
};
int main(){
    using namespace std;
    candbar snak;
    cout<<"输入名字:";
    cin.getline(snak.name,20);
    cout<<"输入重量(浮点数):";
    cin>>snak.heavy;
    cout<<"输入卡路里(整形):" ;
    cin>>snak.kaluli;
    cout<<"名字为:"<<snak.name<<endl<<"重量为:"<<snak.heavy<<endl<<"卡路里:"<<snak.kaluli;
    return 0;
}
2020-08-15 17:16
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:7 
回复 4楼 hffjhhh
cin是默认以空格作为数据之间的间隔符号,所以输入hello world是会读取hello
改成cin.getline以后,就变成读取一行,也就是一直读到你按回车为止
2020-08-16 09:00
happylatch
Rank: 1
等 级:新手上路
帖 子:1
专家分:7
注 册:2020-8-16
得分:7 
回复 楼主 hffjhhh

利用cin.get即可实现;代码如下:
candbar snak;
    cin.get(snak.name, 20);
    cin >> snak.heavy;
    cin >> snak.kaluli;
    cout << snak.name << endl << snak.heavy << endl << snak.kaluli;

总结:cin 对象有一个名为 get 的内置函数很有帮助。因为 get 函数是内置在 cin 对象中的,所以可称之为 cin 的一个成员函数。get 成员函数读取单个字符,包括任何白色空格字符。
希望对你有帮助。
2020-08-16 16:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502862-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014264 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved