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

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

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

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

Считывать из текстового файла и записывать в новый файл только строки, содержащие двузначные числа
Написать программу, которая считывает из текстового файла и записывает в новый файл только строки,...

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

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

Считывать длину строки (только буквы, остальные символы не считаются)
Задача такая: нужно написать программу, которая будет считывать длину строки (только буквы,...

Считывать файл до конца и заносить его содержимое в переменную не зависимо от типа
Здравствуйте, помогите пожалуйста, мне необходимо заставить свою программу считывать файлы всех...

9
lemegeton
2961 / 1385 / 473
Регистрация: 29.11.2010
Сообщений: 2,758
22.12.2010, 19:42 2
Разве эта функция дальше конца строки считывает?
0
rangerx
1953 / 1562 / 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
22.12.2010, 19:51
rangerx
1953 / 1562 / 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
2961 / 1385 / 473
Регистрация: 29.11.2010
Сообщений: 2,758
22.12.2010, 23:57 8
Аааа.... Семен Семеныч... Я-то думал, что EOL и \n разные вещи...
0
valeriikozlov
Эксперт С++
4693 / 2519 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
23.12.2010, 09:09 9
trueherofromad, Скорее всего Ваши преподаватели имели ввиду, чтобы используя функцию scanf() считать посимвольно в массив все символы строки и на этом остановится.
Формулировка задания корректно наверное звучит так:
Написать функцию которая позволяет считывать только до конца строки. В функции использовать для считывания только scanf().
0
accept
4839 / 3260 / 465
Регистрация: 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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2010, 09:13

Как считывать строки по символам ?
Всем привет, это опять я) :) Мне нужно узнать как считывать строку, по символу. То есть, если у...

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

Как правильно считывать строки Excel
Надо считать все заданные столбцы из таблицы Excel в dt, начиная с определенной строки Делаю в...


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

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

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