Как прочитать строку, используя scanf () в C? - PullRequest
0 голосов
/ 21 мая 2019

Мне нужно прочитать строку как ввод, используя scanf (), а затем просто распечатать ее, используя printf (). Я пытался использовать scanf("%[^\n]%*c",sen); и

printf("%[^\n]%*c", sen);

Вот что я получаю в качестве вывода:

 %[^
]

Кто-нибудь может указать, что я не прав?

Следующий код будет принимать три входа: символ, строку и строку. После этого просто распечатайте три данных. Но у меня проблемы с чтением строки, используя scanf().

  { 
    char ch,s[10],sen[25];

    scanf("%c",&ch);
    scanf("%s",s);
    scanf("\n");
    scanf("%[^\n]%*c",sen);

    printf("%c\n",ch);
    printf("%s\n",s);
    printf("%[^\n]%*c", sen);
  }

Ожидаемый результат будет выглядеть примерно так:

C
Language
Welcome To C!!

Что я получил:

C
Language
 %[^
]

1 Ответ

0 голосов
/ 21 мая 2019

Продолжайте вводить символ за символом, пока не найдете новую строку ('\ n').

#include <iostream>
using namespace std;

int main() {
    char s[100],c;
    int len=0;

    while(scanf("%c", &c)==1) { //==1 is to ensure you have not reached end of file(EOF)
        if(c== '\n')
            break;
        s[len++]=c;
    }
    s[len] = '\0'; //to mark end of the string.
    printf("%s\n", s);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...