我试图用以下内容读取一个字符和数字:
char c;
char plus = '+';
int last;
if(scanf("%c%d",&c,&last)!=2 || last<0){
printf("fail\n");
return 1;
};
//trying to test it
if(plus==c){
// code
}
但是当我启动程序并输入+ 100时,它会抛出“失败”,因为scanf没有成功。但如果我只输入100就行了。当有一个字符(+)和数字(100)时,为什么“失败”被打印?如果我只输入数字,为什么不打印?
答案 0 :(得分:1)
你的代码没有问题,除了;试试这个有效:
#include <stdio.h>
int main( )
{
test();
}
int test()
{
char c;
char plus = '+';
int last;
if ( scanf( "%c%d", &c, &last ) != 2 || last < 0 )
{
printf( "fail\n" );
return 1;
} ///////////// YOU HAD UNNEEDED ; HERE
else
{
printf( "\nyou entered:\n%c,%d", c, last );
getchar( );
}
//trying to test it
if ( plus == c )
{
// code
}
}