С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 4
1

Очистка scanf от "\n"

16.12.2015, 23:12. Показов 3488. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main(void)
{
char s[20];
scanf("%[^\n]s", &s);
printf("%s\n", s);
scanf("%[^\n]s", &s);
printf("%s\n", s);
return 0;
}
можете объяснить почему когда я ввожу в консоли
Hi
Russia

вывод такой:
Hi
Hi

?
вообще я пытаюсь считывать сканф строки с пробелами, зачем - другой вопрос. Но не пойму почему второй сканф тут не срабатывает. Может жестко туплю конечно)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2015, 23:12
Ответы с готовыми решениями:

Очистка консоли, очистка строки, установка курсора
Здравствуйте! Подскажите как можно после очистки консоли поставить курсор в самый вверх, чтоб то...

Очистка графика + очистка формы
Есть две программы: Прямо на форме (через Canvas) рисую правильный многоугольник, но после...

Scanf
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstdio&gt; #include &lt;cstdlib&gt; using namespace std;...

scanf
как сделать так, чтобы, не зная длины строки, прочитать всёб что вводят?

scanf и gets
имеем код char chr; char strn; scanf(&quot;%c&quot;, &amp;chr); gets(strn);...

1
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
17.12.2015, 00:56 2
Такие вопросы лучше здесь задавать: https://www.cyberforum.ru/c-beginners/

Добавлено через 1 час 23 минуты
Цитата Сообщение от antoshigas Посмотреть сообщение
Но не пойму почему второй сканф тут не срабатывает.
После первого scanf() '\n' остаётся в очереди ввода, второй scanf() видит в очереди ввода '\n', который вводить не нужно, поэтому код идёт дальше. Если после первого scanf() '\n' извлечь из очереди, то второй scanf() сработает:
C++
1
2
3
4
5
6
7
    char s[20];
 
    scanf("%[^\n]s", s);
    printf("%s\n", s);
    getchar();
    scanf("%[^\n]s", s);
    printf("%s\n", s);
1
17.12.2015, 00:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2015, 00:56
Помогаю со студенческими работами здесь

scanf
Пусть нужно читать из текста слова, пропуская все символы, кроме a-z и A-Z. То есть из текста...

scanf()
Посмотрите пожалуйста на код моей программы и объясните мне почему она не работает и что надо...

Scanf()
Здравствуйте, у меня в задании пользователь должен вводить два числа. если это не число (напр. Х...

Scanf в QT
Ребят,подскажите, почему после scanf переменная q не инициализируется, т.е после нажатия Enter не...

scanf ?
господа, подскажите пожалуйста, почему после этого в VC++ вылетает исключение о нарушении доступа...

Scanf()
Допустим пользователь вводит 0.0.0.0(как узнать что далее ничего не следует?) например: 0.0.0.0.23...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru