热门

最新

红包

立Flag

投票

同城

我的

发布
jjrobot
万功明
5 年前
truejjrobot

scanf(“占位符”,&变量);
例:
do
{
printf("请输入合法的数字:\n");
do
{
printf("tttttt\n") ;
sum = sum + num;
status = scanf("%f",&num);//数值的
printf("xxxxxx\n") ;

} while (getchar() != '\n' && status == 1);

}while (status == 1);

输入 1a 中间不加字母按回车键 只会打印xxx ttt;解释: scanf()读到了1a不理解,但是会返回1,因为的确读到了一个输入流,float型,没有问题但是a呢?不晓得;
看看弹出条件while(getchar() !=‘/n’&& status == 1 )两个条件破坏任何一个都跳出;先看status == 1;刚刚解释过了没有问题 ; getchar()!=‘\n’现在交互界面在scanf 哪里卡住了 输入完 1a 再 按enter scanf会当作什么操作都没有,scanf会掠过空字符,空格、换行、指标键tab、等;

最后因为这个程序支持多个字符连续输入的功能(输入时最好将空格隔开特别是数字与数字,数字与空格);但是内核还是单个信息挨个处理的,逻辑是先堆积在程序运行的门口,按下回车键之后,数据排队被处理,假装你是在单个输入;只是提前排了一个队,不会开始打饭;^_^

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
呵呵呵 五子棋打不过自己编的AI??
立即登录