Ctrl+Z问题

原创 2012年03月24日 15:17:53

问题:

下面一题为什么当我输入: a空格b空格c空格Ctrl+Z 时无输出呢? 但是当我输入a空格b空格c空格回车,再按Ctrl+Z是就有输出呢?

#include <stdio.h>

int main()
{
    char ch,s[20];
    int index=0,i;  //index为下标
    while (scanf("%c",&ch)!=EOF)
    {
        s[index++]=ch;
        getchar();
    }

    printf("The items are: \n");
    for (i=0;i<index;i++)
    {
        printf("%5c",s[i]);
    }
    printf("\n");

    return 0;
}


回答:

一位大神这样说:

阻塞式的方式有一个特点:只有按下回车之后才有可能检测在此之前是否有Ctrl+Z按下。还有一个特点,如果输入缓冲区中有可读的数据则不会检测 Ctrl+Z(因为有要读的数据,还不能认为到了流的末尾)。还有一点需要知道,Ctrl+Z产生的不是一个普通的ASCII码值,也就是说它产生的不是一个字符,所以不会跟其它从键盘上输入的字符一样能够存放在输入缓冲区。
  Windows系统中一般采用阻塞式检查 Ctrl+Z。

--摘自 关于while(cin>>str)无法结束的问题-移动开发博客-移动开发日志-D...


一语中的啊,非常感谢!

std::cin 与 ctrl+z 配合使用时遇到的问题

《C++ Primer》第四版第一章1.4.4节,就早早的教了women
  • obmar45
  • obmar45
  • 2014年07月08日 10:25
  • 730

C++ 输入ctrl+z 不能再使用cin的问题

问题介绍: 程序步骤是开始往容器里面写数据,以Ctrl+Z来终止输入流,然后需要输入一个数据,来判断容器中是否有这个数据。 源代码如下: 1 #include 2 #include 3 #i...

C++ 输入ctrl+z 不能再使用cin的问题

转载自http://www.cnblogs.com/hubavyn/p/3996413.html问题介绍: 程序步骤是开始往容器里面写数据,以Ctrl+Z来终止输入流,然后需要输入一个数据,来判断容器...

C#_解决在控制台中输入Ctrl+Z的问题

本人在前几天做了一道题如下(在116行中用(int)cki.KeyChar==26解决了C#中在控制台捕捉Ctrl+Z): 解决的方法也是请教了老师,经老师调试过才得出的解决方法.(因在Consol...
  • wyh0318
  • wyh0318
  • 2012年05月10日 07:38
  • 255

(K&amp;R小结第1篇)1.5 中关于getchar,Ctrl+Z,EOF的一些问题讨论

最近在读K&R,故开此栏,希望能早点读完这一本C的巨作。 在1.5中,作者讨论了EOF,getchar()的一系列问题,我在测试过程中发现了关于ctrl+Z以及EOF的一些问题,改变了我之前的理解。...
  • azard5
  • azard5
  • 2013年10月30日 15:04
  • 210

前后台切换命令(ctrl+z jobs bg fg &)

当我在终端里面运行某个命令的时候,结果不是很快就能出来的那种,或者是一大堆字在屏幕上狂翻 这个时候,有时ctrl+c也不起作用,那我会用ctrl+z退出来,这个很有效,但是说实话我不知道为什么 这个...

使程序在Linux下后台运行--- Linux Ctrl+Z的使用方法

http://blog.chinaunix.net/uid-10219166-id-2968756.html   假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情...

CTRL+Z的ascii码是多少

键盘上所有的键(包括组合键)都有自己的扫描码和ASCII码,这些扫描码和ASCII码是由键盘中断(int 16h)定义的。 windows系统中,单击 开始→运行,在“打开”框中输入:cmd /c ...
  • tongdh
  • tongdh
  • 2014年04月25日 09:46
  • 10940

word Ctrl Z 撤销功能无法使用怎么办?

原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/785...

linux中fg、bg、jobs、&、nohup、ctrl + z命令详解

fg、bg、jobs、&、nohup、ctrl + z命令 一、& 加在一个命令的最后,可以把这个命令放到后台执行,如gftp &, 二、ctrl + z 可以将一个正在前台执...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ctrl+Z问题
举报原因:
原因补充:

(最多只允许输入30个字)