为scanf()耗费的半天
看例子:
{char a[256];
int b;char c;
scanf("%s",a);
scanf("%d%c",&b,&c);
}
这样写了之后,每次输入一个字符串和一个整数后,就结束了,坑爹,经过多方考证
知道了涉及到这个函数的理解问题,,,当你输入到屏幕中的时候,他是一个系统的标准输入文件流,你输入的东西都在这个流文件里面,这个时候,scanf()做的事情就是对应的读取过程了,
但是%c很特殊,他总是被忽略,导致很多时候没读入或者是非法操作,提供自己验证的两种方法:
1、scanf("%s",a);
scanf("%d\n%c",&b,&c); //加入\n能够防止%c读入空格的字符
2、scanf("%s",a);
getchar(); //在此处加入getchar(),能够将上一个遗留的空格取得,再将后面的%c和%d交换,这样问题
scanf("%c%d",&c,&b); //就避免了
所以在此为自己强行规定下,读取的时候,最好能够在scanf()之后用上getchar()。。而且对于需要多个对象一起读入的时候,一定要留意%c (高手勿喷)