C程序在Code :: Blocks 13.12中执行得不好

时间:2014-12-31 15:58:49

标签: c

这是我的代码:

#include <stdio.h>

// count lines in input
main() {
  int c, nl;
  nl = 0;

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

每当我构建并运行此程序时,它会打开一个控制台窗口,当我按下enter时,它不会给我换行符。

2 个答案:

答案 0 :(得分:3)

要获得输出,您需要按 Ctrl + Z (对于DOS / Windows)或 Ctrl + D (对于UNIX)传递EOF


旁注:根据C标准定义的main签名是

int main(void)   
int main(int argc, char *argv[])

答案 1 :(得分:-1)

在代码块中满足某些条件时,需要执行所有需要执行的代码,如:

if (c == '\n') {
   ++nl;
   printf("%d\n", nl);   
}

将c定义为char而不是整数。