C Во время остановки цикла в EOF, но печать приводит к новой строке - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть этот код:

        #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 Ответ

2 голосов
/ 04 апреля 2011
printf("\n%s", vector[i]);

Просто

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...