c++如何用cin输入一个数组?
输入原理:
程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。
输出数组方法如下:
比如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];
}
{
vector<int> m_vecMain;
int num = 0;
cout << " 请输入的整形数组,用空格间隔,回车结束输入:";
while (cin >> num)
{
m_vecMain.push_back(num);
// 遇到回车符退出
if ( '\n' == cin.get())
{
break;
}
}
for (int i = 0; i < m_vecMain.size(); i++)
{
cout << m_vecMain[i]<<endl;
}
}
cin name就行
cin name[20],name[n]是name数组里下标为n的元素,所以实际的效果只是输入了name[n]一个字符
另外在这里你对name[20]的引用已经越界
而且cin到一个char数组里也是极不安全的
这种情况一般是使用cin.get( name, 20 )的形式,指定数组的长度以防止输入越界
更好且更安全的做法是使用string
广告 您可能关注的内容 |