C语言输入方法比较

比较输入方法:
scanf - getchar - gets

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

/*
比较输入方法:
scanf - getchar - gets
*/

void test() {
	/*getchar()*/
	char ch1, ch2;
	ch1 = getchar();
	ch2 = getchar();
	printf("%d %d\n", ch1, ch2);
	/*
	输入a enter
	输出97 10
	原因:enter留在缓冲区,被第二个getchar()读到
	****
	getchar()以Enter结束输入,也不会舍弃最后的回车符;
	*/
	printf("==================\n");
	char str1[100], str2[100];
	scanf("%s", str1);
	printf("%s\n", str1);
	scanf("%s", str2);
	printf("%s\n", str2);
	/*
	输入:
	hello world
	输出:
	hello
	world
	原因:
	scanf()函数取数据是遇到回车、空格、TAB就会停止,也就是第一个scanf()会取出"Hello",
	而"world!"还在缓冲区中,这样第二个scanf会直接取出这些数据,而不会等待从终端输入
	****
	scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中);
	*/
	printf("==================\n");
	char buffer[20], str3[20], str4[20];
	/*buffer用来吸收上一轮缓冲区中的\n*/
	gets_s(buffer);
	gets_s(str3);
	printf("%s\n", str3);
	gets_s(str4);
	printf("%s\n", str4);
	/*
	输入:
	hello world
	12345
	输出:
	hello world
	12345
	原因:
	gets()以Enter结束输入(空格不结束),接受空格,会舍弃最后的回车符!
	*/

}

int main() {
	/*
			a
		97 10
		==================
		hello world
		hello
		world
		==================
		hello world
		hello world
		12345
		12345
	*/
	test();
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WUYANGEZRA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值