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....怎么修改呢 展开
using namespace std;
int main()
{
char name[20];
cout<<"name:";
cin>>name[20];
cout<<name[20]<<endl;
} cin>>name[20]; 这样输入有问题吗?似乎输入的时候只输出第一个字母...比如我输入abcd,他只输出a....怎么修改呢 展开
7个回答
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;
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;
}
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;
不过要注意数组大小够不够的问题哦
你这样写意思是在给name[20]这个元素赋值
但是name最大的下标是19显然越界了
如果要用字符串数组赋值可以直接这样
cin>>name;
cout<<name;
不过要注意数组大小够不够的问题哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char name[20]中的“20”指的是数组大小,而数组是从下标为0开始的,name[20]明显不属于数组name,越界了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询