cin怎么输入数和数组的

1。比如main()
{
char a;
cin>>&a;
cout<<&a;
}\\输入abcd输出的是abcd
2。main()
{
char a;
cin>>a;cout<<a;
}//输入abcde输出的是a
为什么上面1不会越界,下面2会。 第1个bcde到哪去了?不越界吗?1可以以字符串的形式输出?。为什么给字符型变量赋值不取地址符;我不懂啊。我是刚接触c++的。希望各位高手耐心点,给我推荐本书了解工作原理。
main()
{
char a[5];
cin>>a;
cout<<a[6];
}

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;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-04
第一个是取地址,输入的是a的地址,输出的是a的地址;第二个是输入字符a,占一个字节,当输入abcd,只取第一个字符。
第2个回答  2010-11-04
cin>>a
直接是变量名
int b[10];
for(int i = 0;i < 10;i++)
{
cin>>b[i];
}
第3个回答  推荐于2017-10-08

数:

cin>>x;

数组:

cin>>a>>b>>c;

相似回答