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表达式必须还有常量值,请问错在哪了,那如何输入一个数组的长度和数组元素。 展开
cin >> count;
int arr1[count];
for (int i = 0; i < count; i++)
{
cin >> arr1[i];
}
vs提示有错误,说count表达式必须还有常量值,请问错在哪了,那如何输入一个数组的长度和数组元素。 展开
4个回答
展开全部
输入原理:
程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而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];
}
展开全部
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];
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你如果cout语句也跟着一起循环,请用{} 括起来放在循环体。
你这样写只循环了cin一行代码。循环结束之后才执行cout那一行,这时i已经是11,数组已经越界了
你这样写只循环了cin一行代码。循环结束之后才执行cout那一行,这时i已经是11,数组已经越界了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(cin>>word)
{
// do something;
if(cin.get()=='\n')
break;
}
{
// do something;
if(cin.get()=='\n')
break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询