【发布时间】:2017-03-14 10:04:10
【问题描述】:
我正在编写臭名昭著的《Prentice Hall 软件系列》一书,并尝试他们编写的代码并对其进行修改以了解有关 C 的更多信息。
我正在控制台中的 Fedora 25 上使用 VIM。以下代码是书中的引用,我知道缺少“int”以及 argc 和 argv 等。
Kernighan 和 Ritchie - C 编程语言:第 20 页
#include <stdio.h>
/* copy input to output; 1st version */
main(){
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
使用此代码,我无法让“EOF”工作。我不确定“ctr + z”是否真的是真正要做的事情,因为它会退出控制台中的任何控制台程序。
好吧,因为我不确定我将条件更改为
...
while (c != 'a') {
...
所以通常如果我输入“a”,while 条件应该会中断并且程序应该终止。好吧,当我尝试运行它并输入'a'时它不会。这里有什么问题?
谢谢你们!
【问题讨论】:
-
了解 C 的第一件事:int main.
-
我知道它实际上是“int main(int argc, char *argv[]) 我引用了这本书,它是这样写的,所以请与我裸露。
-
买一本更好的书。最好是第一次学得好,以后再忘掉。
-
@n.m.先生,吹毛求疵,
int main(void).. :) -
自从 K&R 写了他们的书以来,C 发生了很大的变化。甚至他们关于 ANSI C 的书也包含代码示例,这些代码示例会在符合当前 C 标准修订版的现代编译器中中断。
标签: c getchar kernighan-and-ritchie fedora-25