Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法退出cmd文本键入?_C_Cmd - Fatal编程技术网

无法退出cmd文本键入?

无法退出cmd文本键入?,c,cmd,C,Cmd,在C上运行此程序后,无论我按Ctrl+Z多少次,都无法通过cmd退出。此程序统计制表符、新行和新空格的数量 main() { int c, nl, nb, nt; nl = 0; nb = 0; nt = 0; while ((c == getchar()) != EOF){ if (c == '\n') ++nl; if (c == '\t') ++nt; if (c == ' ') +

在C上运行此程序后,无论我按Ctrl+Z多少次,都无法通过cmd退出。此程序统计制表符、新行和新空格的数量

main()
{
  int c, nl, nb, nt;

  nl = 0;
  nb = 0;
  nt = 0;
  while ((c == getchar()) != EOF){ 
      if (c == '\n')
        ++nl;
      if (c == '\t')
        ++nt;
      if (c == ' ')
        ++nb; 
      }   
  printf("%d %d %d\n", nl, nt, nb);

}

按Ctrl+C键只会退出。

Ctl+D
在基于UNIX的系统中是
EOF
。您需要在任何时候停止时按Ctl+D键

Ctl+Z
Windows
中是
EOF
。您需要在想要停止时按Ctl+Z

while ((c == getchar()) != EOF) ==> while ((c = getchar()) != EOF)   
          ^^                                  ^  

假设您在Windows上,情况是您基本上必须在行首执行ctrl+Z操作——即,必须先按enter键,然后执行ctrl+Z,然后(取决于读取输入的方式)可能再次输入


您还可以使用F6发出输入结束的信号。至少在大多数情况下,即使没有立即按enter键,它也会工作。

是的,正如我所说,它会退出,但它将如何计算选项卡、新行等?您使用的是什么操作系统
Ctrl+Z
在所有系统上都不是
EOF
。在UNIX和Mac OS X上,您可以尝试
Ctrl+D
。应该是=@nishithjain,是的。谢谢。在Unix中Ctrl-d是EOF(不是gcc)在DOS/Windows中Ctrl-z是EOF。