从控制台读取数据要注意两点:
html
一、数据类型: 整型数组
浮点型 ide
单个字符spa
字符串(是否包括空格、换行符等)指针
二、读入数据后缓冲区的指针指向什么位置:htm
通常都指向读入数据的下一位
blog
在控制台输入数据时,全部数据都是输入到缓冲区,也都是从缓冲区读取数据,存在一个指向缓冲区的指针。ci
一、cin字符串
遇到空格、tab、enter结束
get
cin>>a 若是a是字符串时,在a末尾添加0,(若是输入的字符串长度大于数组a的长度,则最后一位不输入数据,而是替换成\0)
二、gets和getline
读到enter或者EOF结束
读取一行时,末尾添加'\0',换行符不存储
这两种方法实现的功能相同
例1:
char a[10000];
gets(a);
int len=strlen(a);
例2:
string s;
getline(cin,s);
cin.getline(s,1000);
int len=strlen(s);
三、getchar()
从缓冲区中读取一个字符,能够是任意字符(包括空格、tab、enter)
四、gets()
从缓冲区中读取字符串,遇到enter结束,不保存enter,遇到空格、tab保存,末尾也保存0
五、getch()
用户输入一个字符就直接返回一个字符,不从缓冲区读
六、scanf()
scanf("%d,%d",&d,&d);屏幕应该输入10,20
scanf("%d%d",&d,&d);屏幕应该输入10 20或10tab20或10enter20
scanf("%s",s);遇到空格、enter、tab结束,不读取这些字符
scanf("%c",&c);读取全部字符,包括空格、tab、enter