【发布时间】:2021-01-05 16:04:07
【问题描述】:
我目前正在从 C 编程语言的模拟副本中学习 C。虽然它有助于理解编程的基本方面,但我无法理解直接从教科书中的示例复制的程序如何没有在终端中产生输出,也没有明确地请求输入。我认为我对正在发生的事情的理解存在一个巨大的漏洞。
目前我在第 1.6 节中讨论数组。下面是示例代码:
#include <stdio.h>
int main()
{
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndigit[i] = 0;
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c-'0'];
else if (c == ' ' || c == '\n' || c == '\t')
++nwhite;
else
++nother;
printf("digits =");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n", nwhite, nother);
}
由于是C89,正文中没有包含int之前的int,这是我添加的。它没有吐出任何错误,但在我编译后它也没有吐出任何其他东西。我错过了什么?
【问题讨论】:
-
您是在运行程序,还是只编译它?要构建和运行 C 程序,您需要分多个步骤进行: 1) 编辑源代码; 2)将源代码编译成可执行程序; 3) 运行程序。
-
我也有点想知道你是否知道如何用键盘发送 EOF。
-
@Blindy 他用教科书做。当然,教科书提到了如何发送
EOF。 -
您需要键入一些键,按
Enter,然后键入组合键Ctrl-D(Linux) 或Ctrl-Z(Windows),可能还有另一个Enter。此外,除非您从控制台运行程序,否则您可能根本看不到任何输出(它会先关闭)。 -
Leevee,你的意见是什么?你是如何产生文件结束信号的?
标签: arrays c compiler-errors