1.用fflush()函数清空缓冲区
#include<stdio.h>
#include<stdlib.h>
//文件合并器
int main()
{
char file1[10000],file2[100000],file3[110000];
//确定要参与合成的文件名
printf("请输入想被加入的文件名:");
scanf("%s",file1);
fflush(stdin);
printf("请输入想加入的文件名:");
scanf("%s",file2);
fflush(stdin);
printf("请输入最后合成得到的文件名:");
scanf("%s",file3);
fflush(stdin);
return 0;
}
2.用while循环清空缓冲区
#include<stdio.h>
#include<stdlib.h>
//文件合并器
int main()
{
char file1[10000],file2[100000],file3[110000],c;
int i;
//确定要参与合成的文件名
printf("请输入想被加入的文件名:");
scanf("%s",file1);
while ( (c = getchar()) != '\n' && c != EOF ) ;
printf("%d\n", i);
printf("请输入想加入的文件名:");
scanf("%s",file2);
while ( (c = getchar()) != '\n' && c != EOF ) ;
printf("%d\n", i);
printf("请输入最后合成得到的文件名:");
scanf("%s",file3);
while ( (c = getchar()) != '\n' && c != EOF ) ;
printf("%d\n", i);
return 0;
}
改这样,供参考:
#include<stdio.h>
#include<stdlib.h>
//文件合并器
int main()
{
char file1[10000],file2[100000],file3[110000];
//确定要参与合成的文件名
printf("请输入想被加入的文件名:");
fflush(stdout);rewind(stdin);
scanf("%s",file1);
//fflush(stdin);
printf("请输入想加入的文件名:");
fflush(stdout);rewind(stdin);
scanf("%s",file2);
//fflush(stdin);
printf("请输入最后合成得到的文件名:");
fflush(stdout);rewind(stdin);
scanf("%s",file3);
//fflush(stdin);
return 0;
}
scanf("%s\n",file1);
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632