1、gets函数表示从标准输入输出流stdin读取一整行,以(\n或EOF)为标志位。出错或结束时返回NULL。行末尾的'\n'也会被读取出来,但是不会被写入。gets不检查写入数组的大小,使用时需注意保证有足够的空间,否则多出来的数据量则会覆盖原先的堆栈内容。使用方法如下:
char s[100]; char *str=s; printf("请输入不大于100个字符的字符串:"); gets(str); printf("%s",str);
其中gets(s),s表示字符串变量,可以是数组名或者指针变量。上述的使用方式s表示的是指针变量,注意指针变量在使用前必须先初始化。与gets配合使用的是puts()函数。它会记录gets函数中是否有换行符,虽然gets函数不会将换行符写入数组。下面为测试的代码:
char s[100]; /*char *str=s;*/ printf("请输入不大于100个字符的字符串:"); gets(s); puts(s);运行结果发现,puts可以记录下回车换行。
2、getchar函数gets函数表示从标准输入输出流stdin读取一个字符(包括回车键,其中的一种使用方法就是跟scanf函数配合使用,用于接收回车换行符),并返回这个字符,如果读取到末尾处,则返回EOF,注意到EOF不能用char表示,说明getchar函数返回数值类型是int型。所以将返回的数据类型定义为整型,使用方法如下:
char c; printf("请输入字符串:"); c=getchar(); printf("%c",c); //只输出一个字符3、getch函数是一个无回显函数,按下某一个键值后自动被接收,无需按回车键。使用过程中需注意它并不是一个标准的c函数,移植时需注意。
4、scanf函数在标准的输入流中将数据输入到指定的变量之中,读取成功时返回数据,读取到末尾或者出错返回EOF。
有个链接对于理解scanf函数的使用有很有帮助:http://zhidao.baidu.com/link?url=h_5SlTzZ_gFt9k0a_33tJKPhFnXcrPJVE3-qybqhjPSXfO3BnuURFJXjYZdjcSN8TLMuDJwIeNxp2j0IeTB9j_