Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работаем с файлами, fscanf(); 
:(
    Опции темы
A...
  Дата 28.11.2004, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 5.10.2004
Где: Ереван

Репутация: нет
Всего: 1



Итак имеется строка в фаиле
Код

2004-08-31 14:07:49.906000,18.0999984741210938,8392705

Нужно разобрать зту строку по частям, т.е.
2004-08-31 надо записать в string
14:07:49.906000 в другой srting
18.0999984741210938 в float (или double)
8392705 в int

пишу код

Код

#include <stdio.h>

main()

{
int b;
float a;
FILE *stream;
char *first = new char[50];
char *second = new char[50];
//char *third = new char[50];

stream = fopen("TF1.CSV", "r+");
fscanf(stream,"%s %s,%f,%d",first,second, &a, &b);

fclose(stream);



return 0;
}


вроде все ок, но делаем debug и видем что
Цитата

в first записалось 2004-08-31 (ок)
в second записалось 14:07:49.906000,18.0999984741210938,8392705
с a и b ничего  не произашло

Вопрос ПОЧЕМУ smile smile

Это сообщение отредактировал(а) A... - 28.11.2004, 19:01
--------------------
Особое спасибо Русскому языку за предоставленные буквы...
PM MAIL ICQ   Вверх
Mad
Дата 28.11.2004, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 7
Всего: 19



Я вобщето scanf() функциям не очень доверяю smile

Код

#include <stdio.h>

main()

{
int b;
float a;
FILE *stream;
char *first = new char[1024];
char *second = 0;

stream = fopen("TF1.CSV", "r+");
fgets(first, 1024, stream);
char *t = strchr(first, ' ');
*t = 0;
second = t+1;
t = strchr(second, ',');
*t = 0;
a = atof(t+1);
t = strchr(t+1, ',');
b = atoi(t+1);

fclose(stream);



return 0;
}




--------------------
user posted image
PM MAIL   Вверх
A...
Дата 28.11.2004, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 5.10.2004
Где: Ереван

Репутация: нет
Всего: 1



Mad Да так заработала СПАСИБО.

А можеш обяснить почему мои код не работает ???
--------------------
Особое спасибо Русскому языку за предоставленные буквы...
PM MAIL ICQ   Вверх
JackYF
Дата 29.11.2004, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



По-моему, fscanf и scanf запятую не использует в качестве разделителя, поэтому и не разделяет три последних аргумента.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
sergejzr
Дата 29.11.2004, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



A..., обрати внимание, что 18.0999984741210938 не поместится в float!



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
A...
Дата 29.11.2004, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 5.10.2004
Где: Ереван

Репутация: нет
Всего: 1



sergej.z не в зтом дело, я думаю что проблема во втором "%s". Может нелзья писать
"%s %s", хотя "%d %d" работает без проблем.
--------------------
Особое спасибо Русскому языку за предоставленные буквы...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.