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

intcount;cin>>count;intarr1[count];for(inti=0;i<count;i++){cin>>arr1[i];}vs提示有错误,说cou... int count;
cin >> count;
int arr1[count];
for (int i = 0; i < count; i++)
{
cin >> arr1[i];
}
vs提示有错误,说count表达式必须还有常量值,请问错在哪了,那如何输入一个数组的长度和数组元素。
展开
 我来答
hxmsrx520
2018-03-31 · TA获得超过3826个赞
知道小有建树答主
回答量:10
采纳率:100%
帮助的人:1945
展开全部

输入原理:

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

}

热情的豆芽豆芽
推荐于2017-12-04 · 超过17用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:17.9万
展开全部

arr1在分配内存的时候,必须用常量,也就是说要编译器事先分配好内存,数组大小不能依赖于变量

int count;
cin >> count;
int arr1[100];
for (int i = 0; i < count; i++)
{
cin >> arr1[i];
}

如果你要输入的count > 100,那就最好用指针。用法如下:

int count;
cin >> count;
int *arr1 = new int [count]; //动态内存分配count个int的数组
for (int i = 0; i < count; i++)
{
cin >> arr1[i];
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巴鳞人往生283
2017-03-27 · TA获得超过198个赞
知道小有建树答主
回答量:1207
采纳率:0%
帮助的人:167万
展开全部
你如果cout语句也跟着一起循环,请用{} 括起来放在循环体。

你这样写只循环了cin一行代码。循环结束之后才执行cout那一行,这时i已经是11,数组已经越界了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
银河系外zzx
2017-12-04
知道答主
回答量:2
采纳率:0%
帮助的人:2119
展开全部
while(cin>>word)
{
// do something;
if(cin.get()=='\n')
break;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式