c++如何用cin输入一个数组?

 我来答
hxmsrx520
推荐于2019-08-16 · TA获得超过3826个赞
知道小有建树答主
回答量:10
采纳率:100%
帮助的人:1944
展开全部

输入原理:

程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而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];

}

Edsary丶
2020-04-24
知道答主
回答量:20
采纳率:0%
帮助的人:5.3万
展开全部
int main()
{
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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小忧虑丶丶
2018-01-03 · TA获得超过3581个赞
知道小有建树答主
回答量:20
采纳率:100%
帮助的人:3099
展开全部

cin name就行
cin name[20],name[n]是name数组里下标为n的元素,所以实际的效果只是输入了name[n]一个字符
另外在这里你对name[20]的引用已经越界
而且cin到一个char数组里也是极不安全的
这种情况一般是使用cin.get( name, 20 )的形式,指定数组的长度以防止输入越界
更好且更安全的做法是使用string

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式