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];

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-24
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;
}
}
第2个回答  2018-01-03

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

c++如何用cin输入一个数组?
cin>>&a;cout<<&a;}\\\\输入abcd输出的是abcd 2。main(){ char a;cin>>a;cout<>a;cout<

c++中cin\/cout如何输入输出字符串数组?
C++的输出和输入是用“流”(stream)的方式实现的。图3.2和图3.3表示C++通过流进行输入输出的过程。cout语句的一般格式为:cout<<表达式1<<表达式2<<??<<表达式n;cin语句的一般格式为:cin>>变量1>>变量2>>??>>变量n;

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

C++ cin的用法
ch=cin.get();\/\/cin.get(ch) 可接收字符,不管输入多少,但只能接受第一个 cout << ch << endl; getchar() \/\/接收一个字符,要包含#include <string> char ch; ch=getchar();\/\/括号里面无参数cin.get(ch); cout<<ch; cin.get(字符数组名,接收字符数目): 用来接收一行字符串,可接收空格 char a[...

C++的cin函数怎样使用?
cin 在C++中是一个流操作中的输入操作,它像一个空槽,等待你向其中添加内容,例如:int i = 0;cout<<"请输入一个数值,它会测试你的命运:";cin >> i;那么cin就把你输入的值放到了i中.C的scanf();也可以完成同样的功能,但必须强调在C中没有cin.例如:int i = 0;printf("请输入一个数值,...

c++用cin输入数组问题
只能先用一行输入a,再用一行输入b[a]——因为cin是从右边开始压栈的,就是先压b[a]再压a,显然压b[a]时还不知道a是多少,后面输入了a,但改变不了已经压栈了的内容。就是说这种情况一定要保证操作b[a]时a必须是已知的。但这种东西与编译器关系很大,也许后来的编译器异想天开,弄个别致的...

C++中如何输入一个数组
如果是由输入者决定要输入数组的长度的话,可以尝试如下的办法:\/\/根据输入生成相应长度的数组int i;cin>>i;int *p = new int[i];\/\/...\/\/你对这个数组p的输入与处理\/\/程序结束时别忘了销毁申请的空间delete []p;

C++中如何将带空格的字符串录入到一个数组中?
方法一:getline()读入整行数据,使用回车键输入的换行符来确定输入结尾。调用方法:cin.getline(str, len)第一个参数str用来存储输入行的数组名称,第二个参数是要读取的字符数。方法二:cin.get(str, len)两者都是读取一行输入,直至换行符。然后,getline将换行符丢弃,而get()将换行符保留在输入...

c++,cin\/cout 如何输入输出字符串数组
C++的输出和输入是用“流”(stream)的方式实现的。图3.2和图3.3表示C++通过流进行输入输出的过程。cout语句的一般格式为:cout<<表达式1<<表达式2<<……<<表达式n;cin语句的一般格式为:cin>>变量1>>变量2>>……>>变量n;

C++如何输入数组
正确代码如下:include<iostream> using namespace std;int main(){ int i;cout<<"please put number in it:";int a[20]; \/* i是随机值*\/ for(i = 0; i < 20; i++){ cin>>a[i];} for(int n = 0; n < i; n++) { cout<...

相似回答