c++ cin.get()可以跟字符数组吗?怎么用?

charcStr[20]={0};cin.get(cStr,20);cout<<cStr<<endl;//最后一个字符留作\0为啥最后一个字符会留作\0还有第一句语句的意... char cStr[20]={0};
cin.get(cStr,20);
cout<<cStr<<endl;//最后一个字符留作\0
为啥最后一个字符会留作\0
还有第一句语句的意思是全部初始化为0?
展开
 我来答
hustyangju
2013-11-02 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:29.1万
展开全部
1、char cStr[20]={0};这句只是一个数组初始化,只初始化了第一个元素。建议用
memset(cStr,0,sizeof(char)*20);简单明了。

2、C语言中字符和字符串的区别:
char cStr='a'; 存储的是a的ASCII码。
char cStr="a" 存储时在a后面会自动加上\0,作为字符串结束的标志。其实就是0。这个工作最好自己完成。这时memset()函数的优势就出来了,它已经把数组全部赋为0了。

3、稍微有经验的程序员都知道,字符数组的大小最好要比你接受字符的个数大一个,最后一个元素放\0。

宗上,程序可以改为:
char cStr[21];
memset(cStr,0,sizeof(char)*21);

cin.get(cStr,20);
cout<<cStr<,endl;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式