本文共 2423 字,大约阅读时间需要 8 分钟。
1.scanf
(1)用法:scanf(“e=%d,y=%d”,&e,&y); 备注:在VS2015中需要加入声明 #define _CRT_SECURE_NO_WARNINGS (2)结束一个数据输入的标志 a.空格,换行符,跳格键 对于空格和换行符,当输入流类型为字符时,是能够获取的!而对于其余类型而言则是数据输入结束的标志。 b.非法输入 c.宽度限制 (3)工作机理:(个人理解) 在输入流中读取所需要的数据。在输入流中各个数据是以空格或者换行符隔开(除字符型,字符型是以一个为单位)。只有当输入流中已经没有数据缓存着,才会要求输入数据。代码1
int main(int argc, char** argv) { char str1[100]; char str2[100]; char str3[100]; scanf("%s",&str1); printf("%s\n",str1); printf("over\n"); scanf("%s",&str2); scanf("%s",&str3); printf("%s",str2); printf("%s",str3); system("pause"); return 0;}}
由于对于非char型的数据流而言,空格键是结束一个数据输入的标志,所以一次性输入“I love you”时,在数据流中,以空格键为分隔分别存着三个数据:”i”,”love””you”。因此第一个scanf 取走了第一个数据”i”,打印,接着打印了“over”,然后第二个第三个分别又取走了“love”,”you”.
代码2:
int main(int argc, char** argv) { char str1[100]; char x,y; scanf("%s",&str1); printf("%s\n",str1); printf("over\n"); scanf("%c",&x); scanf("%c",&y); printf("%c",x); printf("%c",y); system("pause"); return 0;}
输入“jui回车空格”,回车键包含“\r”,”\n”;第一个scanf将jui取走,”\r”被处理为第一个数据输入结束的标志,而”\n”则被第二个scanf取走,以及空格被第三个scanf 取走。于是最后输出时,over换行之后还有一个换行,便是第二个scanf取走的值被打印的结果。以及在“请按任意键结束”前有一个空格键,也就是第三个scanf取走的值被打印的结果。
2.getch()
(1)用法:char c=_getch();需要头文件<conio.h> 备注:在VS2015中为_getch() (2)作用:在windows系统下无回显的取一个字符(!!);在unix系统下是有回显的; 强调:能读到回车键和空格键! (3)工作机理:getch()是非缓冲输入流,即getch每次输入必须从键盘上读取,而且不需要按回车键。3.getchar()
(1)用法:char c=getchar(); (2)作用:读取按顺序对应的一个字符 强调:能读到回车键和空格键 (3)工作机理:getchar()是从缓冲区中读取字符,因此需要按回车键结束一个数据的输入。4.gets_s()
(1)**用法:**gets(字符指针) 需要头文件<string.h> (c中) (2)结束标志:END OF FILE 或者 换行符(不作为字符串的内容,被抛弃,同时在字符串末尾加上尾零) (3)作用:读取字符串,并将之放在字符指针所指向的字符数组中。 (4)返回值:读取成功,则返回与字符指针相同的指针值; 读取失败,则返回NULL指针。5.ungetc()
(1)用法:ungetc(char c,FILE *stream) 其中c是要退回的字符,FILE *stream是文件流指针,常见如stdin (2)作用:把一个字符退回到输入流中 代码:int main(){int ch;ch = getchar() ;printf("%d\n",ch);ungetc( ch, stdin );int s;s=getchar();printf("%d\n",s);return 0;}
输入12,则会运行结束,不再要求输入数据,输出为49(换行)49
6.cin
(1)**用法:**cin>>”字符串字面值常量”>>变量名>>… (2)结束标志:空格,换行符,非法输入,也就是说,cin不认空格键和换行符。7.cin.get()
(1)用法:int a=cin.get() char c=cin.get() 备注:针对字符,即a为输入字符的ASCLL码 (2)作用:类似getchar() 读取字符8.cin.getline()
(1)用法:cin.getline(字符指针,字符个数N,结束符) (2)作用:一次读取多个字符(包括空白字符)放到字符指针指定的字符串数组中,直到读满N-1个,或者遇到指定的结束符(默认是“\n”) 备注:结束符对结束条件的作用 优先于 指定字符个数 (3)特点:—利用代码说明 代码1:int main(){char a[6];cin.getline(a,6);cout<<< <
如果输入为:abcdef(反正只要大于5(包括空格),第一个a会取前5个字符,但第二个则为空)
可用cin.clear()更正。
代码2:
int main(){char a[4];char b[4];cin.getline(a,5);cin.clear(); //更正输入cout<<< <
若输入abcdegfgaa,则前四个字符abcd为a,egfg对应b;
转载地址:http://tgiqi.baihongyu.com/