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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.70
trueherofromad
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 59
#1

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

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

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

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

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

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

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

Как можно считывать из строки (std::string или char*) данные при помощи cin - C++
Как можно считывать из строки (std::string или char*) данные при помощи cin (или может есть какой-нибудь поток-обертка?), как sscanf из...

Как определить символ конца строки - C++
Всем доброго времени суток! Работаю в VS2012 Такая задача - работаю со строками. Считываю файл (построчно функцией getline). И мне...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
22.12.2010, 19:42 #2
Разве эта функция дальше конца строки считывает?
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
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
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
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
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
22.12.2010, 22:34 #7
Цитата Сообщение от lemegeton Посмотреть сообщение
Разве эта функция дальше конца строки считывает?
Не совсем так буквально, но пытается.

Например, у тебя в формате стоит ввести 5 чисел, а ввел ты в строке 3. scanf считает три числа и будет ждать еще 2, считая символ новой строки просто разделителем, как пробел. Пока пять не введешь, дальше дело не пойдет. А ему, я так понял, надо, чтобы в таком случае ввелось 3 числа и число введенных чисел, и прога поехала дальше. Причем использовать можно только scanf.
1
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
22.12.2010, 23:57 #8
Аааа.... Семен Семеныч... Я-то думал, что EOL и \n разные вещи...
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.12.2010, 09:09 #9
trueherofromad, Скорее всего Ваши преподаватели имели ввиду, чтобы используя функцию scanf() считать посимвольно в массив все символы строки и на этом остановится.
Формулировка задания корректно наверное звучит так:
Написать функцию которая позволяет считывать только до конца строки. В функции использовать для считывания только scanf().
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2010, 09:13
Привет! Вот еще темы с ответами:

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

Как добавить символ конца строки в вектор - C++
Здравствуйте, как я понимаю getline не записывает символ конца строки в массив, я попытался найти решение, но результата нет, может быть...

Как сделать так, чтобы scanf в переменную double мог считывать с клавиатуры не только "0,01", но и "0.01" - C++
Помогите!) Не знаю, искал, не нашел, возможно ли вообще. Чтобы и так и так понимал.

Как убрать с конца строки знак переноса, после считывания ее из файла? - C++
Всем доброго дня. Говоря подробнее, я считываю информацию из текстового файла. Там находятся фамилии в столбик. После считывания строки, я...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.12.2010, 09:13
Ответ Создать тему
Опции темы

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