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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
some777
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
#1

Работа sscanf - C++

08.12.2011, 19:29. Просмотров 1554. Ответов 2
Метки нет (Все метки)

Мне нужно распарсить файл с такими строками:

Element1\tElement2\tElement3\tElement4\tElement5\n
Element1\tElement2\tElement3\tElement4\tElement5\n
Element1\tElement2\tElement3\tElement4\tElement5\n

планировал сделать так:
1. считать строку из файла в буфер (fgets)
2. распарсить строку по другим буферам (sscanf)

Все бы было хорошо, если бы не пробелы в тексте элементов, то есть конструкция типа:
C++
1
sscanf(string, "%s\t%s\t%s\t%s\t%s\n", buf1, buf2, buf3, buf4, buf5);
не работает: пробелы считаются разделителями наравне с \t!
Как его распарсить, используя функции с++?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 19:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа sscanf (C++):

Работа функции sscanf - C++
Есть у меня функция, написанная ниже. Она работает, но возникает вопрос: как функция sscanf умудряется записать в интовую переменную всю...

Неверная работа sscanf - C++
void mul(long long a, int y, int p, char *input) { memset(a, 0, sizeof(int)*11112); char temp; int i = strlen(input), j = 0, k; ...

Sscanf - C++
Как заставить sscanf парсить строку %s(%d) отдельно, а не все сразу как %s?

Ошибка в sscanf - C++
Доброго времени суток. Возникла ошибка в следующем коде: #include <iostream> #include <string.h> #include <ctype.h> ...

sscanf заборохлил - C++
имеется 2 программы. в одной является валидной запись line = "v 1,000000 -1,000000 1,000000"; line = ' '; ...

Не работает sscanf - C++
Пишу загрузчик моделей формата obj. Но очень странно себя ведет функция sscanf_s. Вот снимок экрана, где ясно видно, что sscanf_s выдает не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
08.12.2011, 19:31 #2
C
1
sscanf(string, "%s%s%s%s%s", buf1, buf2, buf3, buf4, buf5);
а так?
some777
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
08.12.2011, 19:54  [ТС] #3
без изменений

Добавлено через 17 минут
Решение есть!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2011, 19:54
Привет! Вот еще темы с ответами:

Sscanf не реагирует на ввод - C++
проблема такая: printf("vvod: "); fflush(stdin); sscanf("%s",s); что с fflush, что без вообще ничего не воспринимает, то...

Существуют ли аналоги функции sscanf на c++? - C++
Доброго времени суток, при использовании sscanf столкнулся с проблемой: стандартная библиотека слишком велика. Может быть кто-то...

Как заставить sscanf работать с динамическими массивами? - C++
Как заставить sscanf работать с динамическими массивами или есть этому альтернатива(кроме strtok)?

Код с использованием функции Sscanf - Что сделано неправильно? - C++
Доброго времени суток. Что сделано неправильно? #include <iostream> #include <string> #include <cstring> using namespace std; ...


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

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

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