当前位置:  技术问答>linux和unix

scanf无法终止,不停地从stin读入数据

    来源: 互联网  发布时间:2015-07-21

    本文导语:  我写了个小代码,如下: #include  int main() {         int d = 1;         while (d  0) {                 scanf("%d", &d);                 printf("got value %dn", d);                 printf("%srn",...

我写了个小代码,如下:
#include 
int main() {
        int d = 1;

        while (d  0) {
                scanf("%d", &d);
                printf("got value %dn", d);
                printf("%srn", "hello,world");
        }
        return 0;
}
1.如果输入int值,一个循环,然后等待输入
2.如果输入char值,比如'd',不等待输入,不停的循环。
3.如果是有 char s[20];
        while ...
           scanf("%d", &d) 换成 scanf("%s", s);
           d = atoi(s);
           ...
        ....
  在执行若干步后,也会出现2的情况。

|
参考:
#include 
int main()
{
        int d = 1;
        while (d  0) {
                if(scanf("%d", &d) != 1)
                {
                        // mov io position
                        getc(stdin);
                }
                else
                {
                        printf("got value %dn", d);
                        printf("%srn", "hello,world");
                }
        }
        return 0;
}

|
字符在屏幕上一定是一个一个的,而数字可能有多位,
原因在于IO的缓冲机制,你可以参考下UNIX环境高级编程

|
while (d  0) {

|
The loop shall execute whether what you input, for d  0 is always true.

d  0

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • fedora下的scanf問題
  • 关于scanf的大惑不解,高手请赐教
  • 关于scanf无法阻塞等待用户输入
  • 在red hat下,使用vim时,怎样才能得到在线的帮助,比如我想看一下scanf函数的帮助??
  • 在JAVA下如何实现用户输入数据,像C的SCANF一样,给个例子吧
  • fgets 和scanf 、 C库函数 分割屏幕 聊天室
  • 向sourceid提问,还是关于“在定时器到时后,应该发送什么信号让scanf()函数返回?”的
  • getchar或scanf怎么一直阻塞啊!
  • 在Linux下scanf("%*c%c%f",&job, &xk);
  • 在定时器到时后,应该发送什么信号让scanf()函数返回?
  • C语言 scanf等待按键操作时的问题
  • Linux下scanf宽度控制问题
  • 浅析SQLServer中的Scanf与Printf
  • 在输入输出字符串时scanf(),printf()和gets(),puts()的区别浅谈
  • 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别
  • linux内核态下有没有类似于用户态下scanf()这种等待输入的语句?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3