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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сформировать имя файла 
V
    Опции темы
Burka
Дата 13.9.2010, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

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



Мне нужно загружать несколько файлов. В цикле я формирую строку имени файла, но я не могу понять как в си это делается.
мне нужна строка такого вида 
Цитата

"resources/1.png"


В делфи я делал так 
Код

path = "resources/"+IntToStr(i)+".png";

Подскажите как этот код будет выглядеть в си?

Это сообщение отредактировал(а) Burka - 13.9.2010, 13:05


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
azesmcar
Дата 13.9.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Код

char path[25];
sprintf(path, "/resources/%d.png", i);

это на Си, если имелся ввиду C++ то через std::stringstream или boost::format.
PM   Вверх
Burka
Дата 13.9.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

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



спасибо, а можно еще пример на си++


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
azesmcar
Дата 13.9.2010, 13:36 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



#1
Код

#include <sstream>
// ...
std::ostringstream stream;
// ...
stream << "/resources/" << i << ".png";
std::string path = stream.str();


#2
Код

#include <boost/lexical_cast.hpp>
// ...
std::string path = "/resources/" + boost::lexical_cast<std::string>(i) + ".png";


#3
Код

#include <boost/format.hpp>
// ...
std::string path = (boost::format("/resources/%1%.png") % i).str();


Добавлено через 59 секунд
Цитата(Burka @  13.9.2010,  12:52 Найти цитируемый пост)
В делфи я делал так 

В C++ Builder это тоже прокатит
Код

String path = "resources/"+IntToStr(i)+".png";


PM   Вверх
Burka
Дата 13.9.2010, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

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



А что тут не правильно?
Код

    string path;
    std::ostringstream stream;
    for (int i=0; i<6; i++) 
     {
 
             stream << "resources\\" << i << ".png";
             std::string path = stream.str();
             blocks[i] = hge->Texture_Load(path); //ошибка тут
     }

выдает ошибку 
Цитата

main.cpp no matching function for call to `HGE::Texture_Load(std::string&)' 

Но не выдает если написать blocks[i] = hge->Texture_Load("resources\1png");

Это сообщение отредактировал(а) Burka - 13.9.2010, 14:41


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
boostcoder
Дата 13.9.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



Код

blocks[i] = hge->Texture_Load(path.c_str());

PM WWW   Вверх
azesmcar
Дата 13.9.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Burka

Скорее весего HGE::Texture_Load принимает не std::string а const char *, попробуй так
Код

blocks[i] = hge->Texture_Load(path.c_str());

PM   Вверх
boostcoder
Дата 13.9.2010, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



но лучше так:
Код

blocks[i] = hge->Texture_Load(stream.str().c_str()); //ошибка тут

PM WWW   Вверх
Burka
Дата 13.9.2010, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

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



Да спасибо, так работает.
Код

blocks[i] = hge->Texture_Load(path.c_str());



--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
Burka
Дата 13.9.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

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



Код у меня работает, только выводит первую текстуру, вторые не выводятся. Я подозреваю что это из за того, что данные накапливаются в stream.

Код


    std::ostringstream stream;
    std::string path
    for (int i=0; i<6; i++) 
     {
 
             stream << "resources\\" << i << ".png"; //при i=1 stream = "resources/0.pngresources/1.png" но это не точно, но помоему из за этого.
             path = stream.str();
             blocks[i] = hge->Texture_Load(path); //ошибка тут
     }

Как обнулить stream переменную?


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
boostcoder
Дата 13.9.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



так:
Код

    for (int i=0; i<6; i++) 
     {
             std::ostringstream stream;
             std::string path
             stream << "resources\\" << i << ".png"; //при i=1 stream = "resources/0.pngresources/1.png" но это не точно, но помоему из за этого.
             path = stream.str();
             blocks[i] = hge->Texture_Load(path); //ошибка тут
     }

PM WWW   Вверх
azesmcar
Дата 13.9.2010, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Код

stream.str("");

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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