69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char num[50];
scanf("%[^\n]", num); //输入test1回车,此时num读到了test1
printf("%s\n", num);
int len = strlen(num);
scanf("%[^\n]", &num[len]); //这个读取到了空白字符,所以是执行了scanf,运行结果让你以为没执行而已
printf("%s\n", num);
system("pause");
return 0;
}
解决方法
1.在scanf输入个空格
2.使用fflush
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char num[50];
scanf(" %[^\n]", num); //注意有个空格
printf("%s\n", num);
int len = strlen(num);
scanf(" %[^\n]", &num[len]); //注意有个空格
printf("%s\n", num);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char num[50];
scanf("%[^\n]", num);
printf("%s\n", num);
fflush(stdin); //清空缓冲区
int len = strlen(num);
scanf("%[^\n]", &num[len]);
printf("%s\n", num);
system("pause");
return 0;
}
#include <stdio.h>
#include <string.h>
void main()
{
char num[50];
scanf("%s",num);
printf("%s\n",num);
int len=strlen(num);
fflush(stdin);
scanf("%c",&num[len]);
printf("%s\n",num);
}
这样就可以得到你想要的答案