这个是C程序设计语言 书上的课后习题。
题目:
编写一个程序,以每行一个单词的形式打印其输入。
[CODE]
1 #include <stdio.h>
2
3 #define IN 1
4 #define OUT 0
5
6 main(){
7
8 int c, state;
9
10 state = OUT;
11 while((c == getchar()) != EOF ){
12 if (c == ‘ ‘ || c == ‘\n’ || c == ‘\t’){
13 if (state == IN){
14 putchar(‘\n’);
15 state = OUT;
16 }
17 } else if (state == OUT){
18 state = IN;
19 putchar(c);
20
21 } else
22 putchar(c);
23 }
24
25 }
[/CODE]
[CODE]
amro@home:~/doc/c$ ./1.1.3_7.out
rk
???3
??4
??5
??
[/CODE]
程序运行之后,输出的时候变成了乱码,不知道是为什么阿。谁知道说一下贝,谢谢。
程序在vim下编写,语言编码环境utf8。
>> 本文固定链接: http://www.vcgood.com/archives/3233
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int state;
char c;
state = OUT;
while((c == getchar()) != EOF)
{
if (c == ‘ ‘ || c == ‘\n’ || c == ‘\t’)
{
if (state == IN)
{
putchar(‘\n’);
state = OUT;
}
else if (state == OUT)
{
state = IN;
putchar(c);
}
else
putchar(c);
}
}
}
谢谢,你的程序待会试一下,我到学校在centos上重新编写了一
次没有乱码了,暂时没用到“char c;”。再次感谢。 [:)]
[CODE]
1 #include <stdio.h>
2
3 #define OUT 0
4 #define IN 1
5
6
7 main(){
8
9 int c, state;
10
11 state = OUT;
12
13 while((c = getchar()) != EOF){
14 if (c == ‘ ‘||c == ‘\n’|| c == ‘\t’){
15 if (state == IN){
16 putchar(‘\n’);
17 state = OUT;
18 }
19 }else if (state == OUT){
20 state = IN;
21 putchar(c);
22 }
23 else
24 putchar(c);
25
26 }
27
28 }
[/CODE]
下面是在centos下的vim完成的,已经没有乱码了。
另外,谢谢Freeze的帮助。 [:)]