这是C编程语言的基本示例。我正在使用Ubuntu,使用gcc进行编译,预先打包,它不会出现任何错误或任何错误,但是当我点击输入时它应该打印一个字数等等。(我甚至无法得到更简单的字符数工作)。我尝试改变一些代码,这确实产生了错误,并尝试将最终的print语句放在if (getchar()==EOF) {printf(...)}
类的东西中,但这没有做任何事情。
#include <stdio.h>
#define IN 1 /* inside a word */
#define OUT 0 /* outside a word */
/* count lines, words, and characters in input */
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF)
{
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}
答案 0 :(得分:3)
EOF
是 ctrl + D 然后输入。在Windows中,它是 ctrl + Z 然后输入,因此在输入字符串后,使用EOF
来终止while循环你将根据你的计划机构得到答案。
答案 1 :(得分:-1)
更改了行:
main()
为:
int main()
并改变了这个:
printf("%d %d %d\n", nl, nw, nc);
}
对此:
printf("%d %d %d\n", nl, nw, nc);
return(0);
}
编译:
gcc -Wall -o test test.c
创建一个名为&#34; junk.txt&#34;的文件。内容为: adddsadsd 33334343434243
然后执行程序:
> ./test < junk.txt
0 2 25
它似乎像宣传的那样有效。