全部没有问题(三)

2023-12-23 18:10:50

C语言 吞空格

一共三种办法:

fflush(stdin),

while(getchar()!='\n'),?

scanf("%*c")

p.s visual studio已经移除gets函数了,要换编译器/函数,visual C++可以的

#include <stdio.h>

int main() {
	char x[100], y[100], z[100];
	int a,b,c;
	printf("input three numbers:\n");
	scanf("%d%d%d",&a,&b,&c);
	printf("%d,%d,%d\n",a,b,c);
	fflush(stdin);		//方法一,在gets()等与字符相关的函数之前,使用函数fflush(stdin)将缓冲区(存了个回车)情况
	gets(x);
	gets(y);
	gets(z);
	puts(x);
	puts(y);
	puts(z);
	return 0;
}



#include <stdio.h>

int main() {
	char x[100], y[100], z[100];
	int a,b,c;
	printf("input three numbers:\n");
	scanf("%d%d%d",&a,&b,&c);
	printf("%d,%d,%d\n",a,b,c);
	while(getchar()!='\n');				//方法二,使用循环判断缓存区是否有不想有的东西(回车符),若有则吞  注意循环体为空即可,吞的操作用getchar()即可完成
	gets(x);
	gets(y);
	gets(z);
	puts(x);
	puts(y);
	puts(z);
	return 0;
}



#include <stdio.h>

int main() {
	char x[100], y[100], z[100];
	int a,b,c;
	printf("input three numbers:\n");
	scanf("%d%d%d%*c",&a,&b,&c);			//方法三,在scanf()函数结尾处加入%*c,原理是接受一个字符但不做任何操作
	printf("%d,%d,%d\n",a,b,c);
	gets(x);
	gets(y);
	gets(z);
	puts(x);
	puts(y);
	puts(z);
	return 0;
}

文章来源:https://blog.csdn.net/weixin_73185295/article/details/135171277
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。