Форум программистов, компьютерный форум CyberForum.ru

Как считывать scanf'ом только до конца строки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.70
trueherofromad
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
22.12.2010, 19:35     Как считывать scanf'ом только до конца строки #1
Люди, ссори за нубизм, но как сделать так,чтобы при считывании использовать только функцию scanf и при этом считывать только до конца строки?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2010, 19:35     Как считывать scanf'ом только до конца строки
Посмотрите здесь:

C++ Как пропустить все символы до конца строки?
C++ Сформировать две строки - первая содержит только числа из исходной строки, а вторая – только слова
Как добавить символ конца строки в вектор C++
Разработать алгоритм и программу для разбиения текста на строки (как признак конца строки в тексте использовать символ @) C++
Как можно считывать из строки (std::string или char*) данные при помощи cin C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.12.2010, 19:42     Как считывать scanf'ом только до конца строки #2
Разве эта функция дальше конца строки считывает?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
22.12.2010, 19:48     Как считывать scanf'ом только до конца строки #3
C
1
scanf("%[^\n]s", s);
если я правильно понял конечно...
trueherofromad
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
22.12.2010, 19:51  [ТС]     Как считывать scanf'ом только до конца строки #4
lemegeton, да!

rangerx, спс!

Добавлено через 53 секунды
rangerx, при компиляции пишет ’ expects type ‘char *’, but argument 2 has type ‘unsigned int *’
Не объяснишь как исправить?
Вот строка,в которой warning:
scanf ("%[^\n]u", &(obrazec[obrazec_size++])) != EOF
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
22.12.2010, 20:52     Как считывать scanf'ом только до конца строки #5
Цитата Сообщение от trueherofromad Посмотреть сообщение
Не объяснишь как исправить?
Никак. Я написал как считать строку при помощи scanf считая разделителем только '\n'(так я понял вопрос ).
Беззнаковые числа вводятся так
C
1
2
unsigned int u;
scanf("%u", &u);
trueherofromad
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
22.12.2010, 21:42  [ТС]     Как считывать scanf'ом только до конца строки #6
Короче я понял, что то,что я хочу, реально невозможно с помощью сканф, просто преподы сказали делать именно так, ппц)) Спс все равно!
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
22.12.2010, 22:34     Как считывать scanf'ом только до конца строки #7
Цитата Сообщение от lemegeton Посмотреть сообщение
Разве эта функция дальше конца строки считывает?
Не совсем так буквально, но пытается.

Например, у тебя в формате стоит ввести 5 чисел, а ввел ты в строке 3. scanf считает три числа и будет ждать еще 2, считая символ новой строки просто разделителем, как пробел. Пока пять не введешь, дальше дело не пойдет. А ему, я так понял, надо, чтобы в таком случае ввелось 3 числа и число введенных чисел, и прога поехала дальше. Причем использовать можно только scanf.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.12.2010, 23:57     Как считывать scanf'ом только до конца строки #8
Аааа.... Семен Семеныч... Я-то думал, что EOL и \n разные вещи...
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.12.2010, 09:09     Как считывать scanf'ом только до конца строки #9
trueherofromad, Скорее всего Ваши преподаватели имели ввиду, чтобы используя функцию scanf() считать посимвольно в массив все символы строки и на этом остановится.
Формулировка задания корректно наверное звучит так:
Написать функцию которая позволяет считывать только до конца строки. В функции использовать для считывания только scanf().
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2010, 09:13     Как считывать scanf'ом только до конца строки
Еще ссылки по теме:

C++ Как определить символ конца строки
C++ Как считывать данные из строки?
C++ Как считывать только одно число типа double за один проход

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.12.2010, 09:13     Как считывать scanf'ом только до конца строки #10
Цитата Сообщение от rangerx Посмотреть сообщение
C
1
scanf("%[^\n]s", s);
если я правильно понял конечно...
а зачем там s после скобки ?
%[] - это спецификатор сам по себе

можно и погибче делать
C
1
2
3
4
5
6
7
    char line[100];
    int lf;
 
    if (scanf("%99[^\n]%c", line, &lf) == 2 && lf == '\n') {
        printf("ok" "\n");
        printf("%s" "\n", line);
    }
Yandex
Объявления
23.12.2010, 09:13     Как считывать scanf'ом только до конца строки
Ответ Создать тему
Опции темы

Текущее время: 12:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru