对 string 类的输入直接看
一、简述
cin.get() 和 cin.getline() 解决 char 中的问题,遇到换行符时才停止。
对于 string 类,不能使用cin.get()和cin.getline()进行输入,会报错,但用 cin 输入又无法输入带空格的字符串。
二、题目
/*
修改以下程序,使用C string 类而不是 char 数组
#include<iostream>
using namespace std;
int main()
{
const int ArSize = 20;
char name[ArSize];
char dessert[ArSize];
cout << "Enter your name: ";
cin.getline(name, ArSize);
cout << "Enter your favorite dessert: ";
cin.getline(dessert, ArSize);
cout << "I have some delicious " << dessert << " for you, " << name << ".\n";
return 0;
}
*/
三、代码
1.不符合题目要求的示例
#include<iostream>
#include<string>
using namespace std;
int main()
{
string name, dessert;
cout << "Enter your name: ";
cin >> name; //不能输入空格
cout << "Enter your favorite dessert: ";
cin >> dessert;
cout << "I have some delicious " << dessert << " for you, " << name << ".\n";
return 0;
}
问题:怎样才能顺利输入?
2.正确示例
#include<iostream>
#include<string> //使用 string 类
using namespace std; //名字空间声明
int main()
{
// string 能够自动维护字符串的长度,所以不需要长度常量
string name;
string dessert;
cout << "Enter your name: ";
getline(cin, name); //使用 getline() 函数而不是 cin 的对象 getline() 函数
cout << "Enter your favorite dessert: ";
getline(cin,dessert);
cout << "I have some delicious " << dessert << " for you, " << name << ".\n";
return 0;
}
解决:使用 getline() 函数而不是 cin 对象的 getline() 函数(两者参数有区别),且不用担心字符长度问题。
格式为 getline(cin,string_name);
四、总结
对于 string 类,可以使用函数 getlinge() 进行输入。
如果和我一样,对 cin
,cin.get()
,cin.getline()
,getline()
感到迷糊,可以阅读下面这篇文章:
cin(),cin.get(),cin.getline(),getline()的区别(直接看总结)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggefac
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01