全部没有问题(三)
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!