#include <stdio.h>
#include <string.h>
int main()
{
long p;
long q;
char s[128];
int stop=0;
printf("请输入指令的页号和页内地址:\n");
//scanf("%1d%1d",&p,&q);
if(scanf("%1d%1d",&p,&q)!=2)
{
printf("如果选择退出系统,请输入exit!\n");
scanf("%s",s);
if(strcmp(s,"exit")==0)
{//如果输入的为"exit"那么就退出,进入重选页面
stop=1;
}
}
printf("%d",stop);
return 0;
}
上面的代码运行之后直接退出,可是我感觉写的没有问题,也找不到错哪儿了,好崩溃,有人能解答一下吗?
输入里面是 %ld 吧, 你写的 是 1d 不是 ld, 数字 1
另外 ,第一个if里的 scanf 输入后,你这里 不止换行符,还有输错的非数字字符, 需要清空一下 输入流
fflush(stdin);
if(scanf("%1d%1d",&p,&q)!=2)
->
if(scanf("%ld%ld",&p,&q)==2)
注意是ld,不是1d