Проблемка с переменными...
| |
GrossCage | Дата: Суббота, 21 Апреля 2012, 18:06 | Сообщение # 1 |
Плюсовый Сишник
Сейчас нет на сайте
| Короче, есть цикл, for: (псевдокод: ) Code for (int i = 1; i = platforms_count; i++){ platfSpr->Render(GetX("levels.ini", "TEST_LEVEL", "platf_"+i+"_x"), GetY("levels.ini", "TEST_LEVEL", "platf_"+i+"_y")) } Проблема в том, что компилятор ругается на что-то типа "Не удается перевести переменную типа char, char[7], char* в operator+" Компилятор MinGW, Dev-C++.
PixelPong - готов
Сообщение отредактировал GrossCage - Суббота, 21 Апреля 2012, 18:28 |
|
| |
Нохчи | Дата: Суббота, 21 Апреля 2012, 18:19 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Кто тебе сказал, что так можно делать?
ЗЫ. цикл тоже не правильный.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
GrossCage | Дата: Суббота, 21 Апреля 2012, 18:22 | Сообщение # 3 |
Плюсовый Сишник
Сейчас нет на сайте
| Нохчи, Я знаю, надо перевести i в char. А с циклом-то что не так?
PixelPong - готов
|
|
| |
Нохчи | Дата: Суббота, 21 Апреля 2012, 18:26 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Quote Я знаю, надо перевести i в char i надо перевести в строку и приаттачить ее к "platf_". Quote А с циклом-то что не так? 1)i не инициализирована 2)если platforms_count != 0, будет вечный цикл, иначе внутрь цикла вообще не попадешь. Подозреваю, что должно быть так: Code for (int i = 0; i<platforms_count; i++)
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
GrossCage | Дата: Суббота, 21 Апреля 2012, 18:27 | Сообщение # 5 |
Плюсовый Сишник
Сейчас нет на сайте
| Нохчи, А как перевести? (с циклом тупанул )
PixelPong - готов
Сообщение отредактировал GrossCage - Суббота, 21 Апреля 2012, 18:28 |
|
| |
Нохчи | Дата: Суббота, 21 Апреля 2012, 18:35 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Code char buffer_x[32]; char buffer_y[32];
for (int i = 1; i < platforms_count; i++){ sprintf(buffer_x,"platf_%d_%s",i,"_x"); sprintf(buffer_y,"platf_%d_%s",i,"_y"); platfSpr->Render(GetX("levels.ini", "TEST_LEVEL", buffer_x), GetY("levels.ini", "TEST_LEVEL", buffer_y)) }
Многие вопросы по Windows отпадут, если посмотреть тут
Сообщение отредактировал Нохчи - Суббота, 21 Апреля 2012, 18:41 |
|
| |
GrossCage | Дата: Суббота, 21 Апреля 2012, 18:36 | Сообщение # 7 |
Плюсовый Сишник
Сейчас нет на сайте
| Нохчи, Спасибо
PixelPong - готов
|
|
| |
Тритон | Дата: Понедельник, 23 Апреля 2012, 15:17 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Quote (GrossCage) "Не удается перевести переменную типа char, char[7], char* в operator+" Переменные не переводятся в операторы. Давай дословный егог.
Добавлено (23.04.2012, 15:14) --------------------------------------------- Quote (Нохчи) 1)i не инициализирована читай:Quote (GrossCage) (int i = 1;
Добавлено (23.04.2012, 15:17) --------------------------------------------- Quote (GrossCage) for (int i = 1; i = platforms_count; i++){ На втором месте пишется такое условие, чтоб цикл продолжался, пока оно истинно, а ты написал присваивание конкретного значения. Даже если написать ==, то такое равенство возможно только один раз, если platforms_count отличается от 1, то цикл не запустится, иначе выполнится 1 раз, в таких случаях цикл не нужен, достаточно альтернативы и счётчик цикла заводить не надо, а с оператором = (не путать с ==) нарушен ещё и синтаксис.
Не всё так плохо, как оно есть на самом деле.
Сообщение отредактировал Тритон - Суббота, 28 Апреля 2012, 07:40 |
|
| |
Нохчи | Дата: Вторник, 24 Апреля 2012, 07:32 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| там сообщение исправлено, в первоначальном варианте все было куда брутальней. хД
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
|