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

форматированный ввод - C++

Восстановить пароль Регистрация
 
some777
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 114
23.12.2011, 18:30     форматированный ввод #1
Есть строка вида:
поле1\t поле2\tполе3\tполе4\n
Обрабатываю её так:
C++
1
sscanf(Line, "%[^\t]\t%[^\t]\t%[^\t]\t%[^\t]\n", &str1, &str2, &str3, &str4);
Всё нормально, если поля не пустые, иначе поля смещаются.
Как правильно указать формат?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 18:30     форматированный ввод
Посмотрите здесь:

C++ форматированный ввод\вывод
Форматированный вывод. Как??? C++
C++ Форматированный вывод
Форматированный ввод/вывод в файл C++
C++ Форматированный потоковый вывод
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
some777
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 114
26.12.2011, 09:26  [ТС]     форматированный ввод #2
пробовал сделать в бинарном режиме, но работает крайне медленно, выручайте плиз
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
26.12.2011, 10:09     форматированный ввод #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char* GetOne(char *Line,char *str)
{
    char *p=Line;
   while(*p!='\t' && *p!='\n')
   {
        *str=*p;str++;p++;
    }
    return p;
}
void main()
{
....
    char *p=Line;
    p=GetOne(p,str1);
    p=GetOne(p,str2);
    p=GetOne(p,str3);
    p=GetOne(p,str4);
some777
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 114
26.12.2011, 13:55  [ТС]     форматированный ввод #4
Цитата Сообщение от zss2 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char* GetOne(char *Line,char *str)
{
    char *p=Line;
    while(*p!='\t' && *p!='\n')
    {
        str=*p;str++;p++;
    }
    return p;
}
void main()
{
....
    char *p=Line;
    p=GetOne(p,str1);
    p=GetOne(p,str2);
    p=GetOne(p,str3);
    p=GetOne(p,str4);
Сорри, в эту сторону совсем не думал, хотел добиться именно через формат строки. Спасибо!
Yandex
Объявления
26.12.2011, 13:55     форматированный ввод
Ответ Создать тему
Опции темы

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