Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/65: Рейтинг темы: голосов - 65, средняя оценка - 4.88
trueherofromad
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
1

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

22.12.2010, 19:35. Просмотров 12091. Ответов 9
Метки нет (Все метки)

Люди, ссори за нубизм, но как сделать так,чтобы при считывании использовать только функцию scanf и при этом считывать только до конца строки?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2010, 19:35
Ответы с готовыми решениями:

Как считывать только числа из текстового файла?
необходимо считать из текстового файла числа в массив. но если в файле будут...

Как считывать только одно число типа double за один проход
Теперь измените тело цикла так, чтобы он считывал только одно число типа ...

Как считывать данные из строки?
делаю программу работающую с ip-адресами. ввожу в консоли адрес через точку....

Как считывать значение строки на экране и записывать её в переменную?
Здравствуйте. Есть программа прикасаться к которой нельзя. То есть она работает...

Разработать алгоритм и программу для разбиения текста на строки (как признак конца строки в тексте использовать символ @)
Разработать алгоритм и программу для разбиения текста на строки (как признак...

9
lemegeton
2935 / 1364 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
22.12.2010, 19:42 2
Разве эта функция дальше конца строки считывает?
0
rangerx
1944 / 1553 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
22.12.2010, 19:48 3
C
1
scanf("%[^\n]s", s);
если я правильно понял конечно...
2
trueherofromad
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
22.12.2010, 19:51  [ТС] 4
lemegeton, да!

rangerx, спс!

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

Например, у тебя в формате стоит ввести 5 чисел, а ввел ты в строке 3. scanf считает три числа и будет ждать еще 2, считая символ новой строки просто разделителем, как пробел. Пока пять не введешь, дальше дело не пойдет. А ему, я так понял, надо, чтобы в таком случае ввелось 3 числа и число введенных чисел, и прога поехала дальше. Причем использовать можно только scanf.
1
lemegeton
2935 / 1364 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
22.12.2010, 23:57 8
Аааа.... Семен Семеныч... Я-то думал, что EOL и \n разные вещи...
0
valeriikozlov
Эксперт С++
4687 / 2513 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
23.12.2010, 09:09 9
trueherofromad, Скорее всего Ваши преподаватели имели ввиду, чтобы используя функцию scanf() считать посимвольно в массив все символы строки и на этом остановится.
Формулировка задания корректно наверное звучит так:
Написать функцию которая позволяет считывать только до конца строки. В функции использовать для считывания только scanf().
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
23.12.2010, 09:13 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);
    }
1
23.12.2010, 09:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2010, 09:13

Как можно считывать из строки (std::string или char*) данные при помощи cin
Как можно считывать из строки (std::string или char*) данные при помощи cin...

Как определить символ конца строки
Всем доброго времени суток! Работаю в VS2012 Такая задача - работаю со...

Как пропустить все символы до конца строки?
Проблема в том,что я считываю командой fgets максимум 1000 символов (пишу мини...


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

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

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