Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
6 / 6 / 0
Регистрация: 13.03.2010
Сообщений: 79
1

Парсинг файла игнорирует числа

11.03.2012, 18:31. Показов 1989. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день. Пытаюсь прочитать данные из файла 3D модели в формате OBJ.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bool L_ObjData::LoadFromFile(string FileName)
{
   ifstream ifs(FileName.c_str());
   if (!ifs)
   {
      return false;
   }
 
   bool check = true;
 
   while(check == true)
   {
      check = ProcessLine(ifs);
   }
   ifs.close();
   return true;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool L_ObjData::ProcessLine(istream& is)
{
   string element_id;
   float x, y, z;   
 
   is >> ws;
 
   if (!(is >> element_id))
   {
      return false;
   }
   // Дальше проверка строки
Дебажу element_id, он по одному слову из файла берет, но когда доходит до чисел - они просто игнорируются.

Вот мой тестовый файл
Код
# Blender v2.56 (sub 0) OBJ File: 'cube.blend'
# www.blender.org
mtllib cube.mtl
o Cube
v 0.984421 -0.936853 -1.021311
v 0.984421 -0.936853 0.978689
v -1.015579 -0.936853 0.978689
v -1.015578 -0.936853 -1.021311
v 0.984422 1.063147 -1.021311
v 0.984421 1.063147 0.978690
v -1.015579 1.063147 0.978689
v -1.015579 1.063147 -1.021311
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
usemtl Material_matrix.jpg
s off
f 1/1 2/2 3/3 4/4
f 5/1 8/2 7/3 6/4
f 1/1 5/2 6/3 2/4
f 2/1 6/2 7/3 3/4
f 3/1 7/2 8/3 4/4
f 5/1 1/2 4/3 8/4
После того как в element_id вижу в дебаге "o" и "Cube", потом только "v" и "vt", числа пропускаются. Подскажите пожалуйста как по целой строчке записывать в строку, чтобы ее потом нарезать на куски? Или как еще это можно сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2012, 18:31
Ответы с готовыми решениями:

VS 2015 игнорирует функции из заголовочного файла
Всем привет :) Заморочился соединить OpenGL с Windows Form по исходникам 2006 года, в результате в...

MSIE игнорирует заголовки при отправки файла в браузер клиента скриптом
По соображениям безопасности я не хочу, чтобы клиент видел URL скачиваемого им файла. Для решения...

Парсинг XML файла и сохранение информации из файла в структуре или массиве
Доброго времени суток. Пытаюсь распарсить XML файл и вытащить оттуда все данные, а после записать...

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

21
6 / 6 / 0
Регистрация: 13.03.2010
Сообщений: 79
13.03.2012, 21:11  [ТС] 21
Author24 — интернет-сервис помощи студентам
Проблема решена. Вот так работает, остается только строку нарезать ручками.
C++
1
2
char s[256];
fin.getline(s, 256);
Но вопрос про оператор >> открыт. Если кто-нибудь знает, почему он здесь не работает - напишите пожалуйста, буду очень признателен.
0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
14.03.2012, 17:59 22
C++
1
2
3
4
5
6
7
8
ifstream f("cube.obj");
string s;
float x, y, z;
f >> s;
if(s == "v")
{
    f >> x >> y >> z;
}
0
14.03.2012, 17:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2012, 17:59
Помогаю со студенческими работами здесь

парсинг числа
Всем привет, нужно помочь с регуляркой <tr id="transactionDetailsRow-56"...

Парсинг файла
Вот открываю через FILE*, файл ввида "test" { "test1" "test1_1" ...

Парсинг файла
Загружаю файл в string, строка в файле только одна, так что масив ненужен. В чем задача стоит?...

Парсинг файла
Добрый день. Есть переменная defindex. И есть файл, не в json, но имеющий логическую структуру...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru