gets、getchar、getch、scanf函数的区别

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_





  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值