C循环停止在EOF但打印结果为新行

时间:2011-04-04 08:00:32

标签: c

我有这段代码:

        #include <stdio.h>
        #include <stdlib.h>
        #include <string.h>

        int main()
        {
            char vector[5][100];
            int i = 0;
            int aux = 0;
            while (i <5 && scanf("%s", vector[i])!=EOF)
            {
                i++;
                aux+= 1;
            }

            for (i=0;i<aux;i++)
            {
                printf("%s\n", vector[i]);
            }
            return 0;
        }

它做我想做的事,但我仍有一些问题。

第一个问题:(已解决)

如果我输入a b c d e f g h i j,则输出为:

 a b c d e f g h i ja
 b
 c
 d
 e

我想知道我按CTRL-D打印,新行中的第一个输出吗? 像这样:

 a b c d e f g h i j
 a
 b
 c
 d
 e

第二个问题:

如果我输入a b c为什么我必须多次按CTRL-D来打印输出?

此致

FAvolas

1 个答案:

答案 0 :(得分:2)

printf("\n%s", vector[i]);

简单地