请问各位下面这两个简单的程式为什么预期结果会不一样
#include <stdio.h>
const int S_PER_M=60;
const int S_PER_H=3600;
const double M_PER_K=0.6213;
int main(int argc, char **argv)
{
int sec;
while(scanf("%d",&sec)!=0)
{
printf("FFF\n");
fflush(stdin);
scanf("%d",&sec);
}
printf("Ending\n");
return 0;
}
上面这个程式我不管怎么按"0"都不会跳出while
但是下面这个却可以
#include <stdio.h>
const int S_PER_M=60;
const int S_PER_H=3600;
const double M_PER_K=0.6213;
int main(int argc, char **argv)
{
int sec;
scanf("%d",&sec);
while(sec!=0)
{
printf("FFF\n");
fflush(stdin);
scanf("%d",&sec);
}
printf("Ending\n");
return 0;
}
请问while(scanf("%d",&sec)!=0) 这样写有什么不对吗???
作者: caras 2018-02-16 01:58:00
这误会大了
再说两个程式又不一样意思,结果不一样也是很正常的吧
作者:
dzwei (Cout<< *p << \n ;)
2018-02-16 02:46:00请跟我一起推广Scanf_s或bscanf
scanf回传值是你正确读入几个输入 你上面的状况是1 更详细的请自己google
不要省那一行啦 没比较漂亮 分开写不就会逼你自己想回传值是啥了吗
如果scanf会回传读入的值 那你&sec是在传心酸的喔
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2018-02-17 13:18:00不能这么说, 像 strncpy 就是同时会回传你接到的结果不过当然因为 C 的型别限制 scanf 不可能直接回传 int所以原 po 的要求根本毫无道理
作者:
y3k (激流を制するは静水)
2018-02-17 15:40:00使用function的时候了解他的return意义是基本功喔@@
while (scanf("%d", &sec), sec)
scanf跟strncpy是有什么关系 你会像你家隔壁的王叔叔吗