c++,cin/cout 如何输入输出字符串数组

#include<iostream>usingnamespacestd;intmain(){charname[20];cout<<"name:";cin>>name[20... #include <iostream>
using namespace std;
int main()
{
char name[20];
cout<<"name:";
cin>>name[20];
cout<<name[20]<<endl;
} cin>>name[20]; 这样输入有问题吗?似乎输入的时候只输出第一个字母...比如我输入abcd,他只输出a....怎么修改呢
展开
 我来答
百度网友96ffcf7
推荐于2018-09-20 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118718
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部

  C++的输出和输入是用“流”(stream)的方式实现的。图3.2和图3.3表示C++通过流进行输入输出的过程。

  cout语句的一般格式为:

  cout<<表达式1<<表达式2<<……<<表达式n;

  cin语句的一般格式为:

  cin>>变量1>>变量2>>……>>变量n;

匿名用户
2013-08-25
展开全部
cin >> name就行
cin >> name[20],name[n]是name数组里下标为n的元素,所以实际的效果只是输入了name[n]一个字符
另外在这里你对name[20]的引用已经越界

而且cin>>到一个char数组里也是极不安全的
这种情况一般是使用cin.get( name, 20 )的形式,指定数组的长度以防止输入越界
更好且更安全的做法是使用string
#include <string>

string a;
cin >> a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-25
展开全部
你输入的值是赋给name[20],前面的19项都为赋值,你的输出也只是输出name[20]一个字符。修改如下:#include <iostream>
using namespace std;
int main()
{
char name[20];
cout<<"name:";
cin>>name ;
cout<<name <<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-25
展开全部
cin>>name[20];
你这样写意思是在给name[20]这个元素赋值
但是name最大的下标是19显然越界了
如果要用字符串数组赋值可以直接这样
cin>>name;
cout<<name;
不过要注意数组大小够不够的问题哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jjmyth
2014-03-22
知道答主
回答量:12
采纳率:0%
帮助的人:4.6万
展开全部
char name[20]中的“20”指的是数组大小,而数组是从下标为0开始的,name[20]明显不属于数组name,越界了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式