CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

c语言中的scanf输入语句的问题

楼主w_shd(酸辣粉)2002-10-18 09:34:46 在 C/C++ / C语言 提问

源程序如下:  
  #include   <stdio.h>  
  main(){  
  int   i=0;  
  while(i!=3){  
  printf("Input:");  
  scanf("%d",&i);  
  }  
  return   0;  
  }  
  如果输入一个字符,那么程序将进入死循环,为什么?怎样避免??? 问题点数:20、回复次数:4Top

1 楼jianliang79(jianliang79)回复于 2002-10-18 09:44:43 得分 0

你是不是输入字符后没按回车键?Top

2 楼jh20001(十七郎)回复于 2002-10-18 09:52:17 得分 0

scanf("%d",&i);中的%d是指输入十进制数,改成%c就行Top

3 楼Gentlewolf7408(绅士狼)回复于 2002-10-18 09:52:24 得分 15

在scanf()之前加上   _flushall()吧,把输入缓冲区中的回车给清掉。Top

4 楼vanhui(飘零辉)回复于 2002-10-18 09:52:26 得分 5

这是一个标准输入不能匹配类型的问题。由于你所输入的字符开始无法匹配给第一次循环的SCANF,就将保留并去匹配下一次的SCANF,但是一直都无法匹配的,所以程序进入死循环。只要在后面加一个GETCHAR()就可以了。#include   <stdio.h>  
  main(){  
  int   i=0;  
  while(i!=3){  
  printf("Input:");  
  scanf("%d",&i);  
                                      getchar();  
  }  
  return   0;  
  }  
   
  Top

相关问题

  • 有关输入语句scanf类型匹配问题!在线等待
  • 有谁知道C#标准输入标准输出是指那个语句?
  • 简单的C语言程序,为什么不执行输入语句呢?
  • c#语句?
  • 100分求高人救命!怎样使执行scanf语句时,如果用户多输入了几个数据,不影响下一次scanf语句?
  • 为什么我在Delphi中用Pascal下的read,write会提示错误?而在VC中用C下的scanf,printf输入,输出语句VC就会弹出DOS窗口???
  • 在Sql Server的T-Sql中,有无类似C语言的Scanf语句?
  • sql语句查询输入问题
  • 关于GPS的 NMEA0183输入语句,
  • Asp.net/C#/Sql语句问题?

关键词

  • 循环
  • scanf
  • 匹配
  • 输入

得分解答快速导航

  • 帖主:w_shd
  • Gentlewolf7408
  • vanhui

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo