Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
new_account
0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 10
#1

Чтение строк, разделённых пробелами, через scanf - C (СИ)

18.10.2015, 21:23. Просмотров 495. Ответов 2
Метки нет (Все метки)

В ходе решения задачи возникла проблема: нужно считывать строки, разделённые пробелами (как количество, так и их длина неизвестны, между строками может быть любое число пробелов). Конец ввода - '\n'. При этом, если читать через scanf, то он работает бесконечно, т. к. трактует '\n' как разделитель.
while (scanf("%s", st)) {
Нужно, чтобы при конце строки он останавливался.
Можно ли это как-то исправить без замены scanf на getchar?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2015, 21:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чтение строк, разделённых пробелами, через scanf (C (СИ)):

Написать программу с использованием scanf\printf которая считует введенное с пробелами(не обяз. с рус. алфав.) - C (СИ)
Или вместо scanf можно использовать sscanf, главное что бы вместе с пробелами считывало и выводило(желательно на русской раскладке).

Чтение символьных данных в scanf() - C (СИ)
Всем привет! Имеется такой тривиальный код (я из начинающих): #include<stdio.h> int main(void) { char ch; scanf("%c", &ch); ...

Чтение вещественного числа, функция scanf - C (СИ)
Здравствуйте! Только начал знакомство с этим замечательным языком. Возникла такая проблема: необходимо считать с клавиатуры число...

Считывание чисел через пробел в массив через scanf - C (СИ)
Здравствуйте! Очень вероятно что вопрос поднимался миллионы раз, но я ответы не нашел спустя часы поиска :( В общем задача следующая. ...

Не работает scanf в одной из строк - C (СИ)
#include <stdio.h> int main() { int a, b, c, loop; char symbol; char change; while(1) { loop=0;

Как пользоваться scanf для строк - C (СИ)
хоть убей не могу понять как пользоваться scanf для строк, запарило одни ошибки выдает... пишу: char *str; scanf("%s", str); ...

2
zss
Модератор
Эксперт С++
6866 / 6428 / 2149
Регистрация: 18.12.2011
Сообщений: 16,891
Завершенные тесты: 1
18.10.2015, 21:49 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
char c;
char s[100];
do
{
    scanf("%s%c", st,&c);
 ...
}while(c!='\n');
1
new_account
0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 10
18.10.2015, 22:16  [ТС] #3
Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2015, 22:16
Привет! Вот еще темы с ответами:

Scanf работает через раз - C (СИ)
Подскажите, почему в 42 строчке scanf пропускается? #include <stdio.h> #include <stdlib.h> /* для rand(), srand() */ #include...

Scanf работает через раз - C (СИ)
Доброго времени суток При компиляции простой программы: #include <stdio.h> #include <locale> #include <stdlib.h> int main()...

как ввести через scanf следующее 5i + 3 - C (СИ)
Нужно перемножить два комплексных числа. По условию задания нужно одним числом разом ввести "5i + 3", а вторым числом 2i + 4. Причем я...

Прочесть с клавиатуры n текстовых строк с пробелами. - C (СИ)
#include <stdio.h> int main () { typedef char string; int i, n; printf("n="); scanf("%i", &n); string...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru