Понедельник, 16 Мая 2022, 17:57

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » ERROR (C++)
ERROR
Shevron_7Дата: Суббота, 11 Января 2014, 16:18 | Сообщение # 1
маньяк-бомбист
Сейчас нет на сайте
Не могу понять почему не работает код:
Код
#include <iostream>
using namespace std;
int main()  
{
  int fin;
  char mass[3];
   
  for(int i = 0; i < 3; i++)
  {
   switch(i)
   {
   case 0: (char)mass[i] = "iron";
   case 1: (char)mass[i] = "gold";
   case 2: (char)mass[i] = "silver";
   case 3: (char)mass[i] = "titan";
   }
   cout<<mass[i]<<"\n";
  }
cin>>fin;
}


Код
Выдает ошибку: [Error] lvalue required as left operand of assignment


TEST =>
Мои игры:
Kill your brain
Space Conflict
Zombie Day
Bounce PC
Extra ball 2012

Это спасибо в карман не положишь, а в репутацию можно. +1
-l33t-h4xx-Дата: Суббота, 11 Января 2014, 16:28 | Сообщение # 2
участник
Сейчас нет на сайте
Shevron_7, ты вообще-то выделил память под строку в три символа. В кейсе ты пытаешься присвоить целую строку переменной типа "символ". Не совсем ясно, что должен делать этот код, не хочешь объяснить?

Я так подумал, ты хотел что-то в этом роде:
Код
string mass[4] = {"iron", "gold", "silver", "titan"};


Как правильно задавать вопросы

Сообщение отредактировал -l33t-h4xx- - Суббота, 11 Января 2014, 16:40
ArchidoДата: Суббота, 11 Января 2014, 16:43 | Сообщение # 3
Сэнсэй
Сейчас нет на сайте
Shevron_7
Замени char на string и убери все "(char)" в теле switch + после каждого "case" неплохо бы делать break. И да, ты работаешь всего с 3-я элементами вместо 4-х задуманных.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Shevron_7Дата: Суббота, 11 Января 2014, 20:23 | Сообщение # 4
маньяк-бомбист
Сейчас нет на сайте
Вот так все работает

Код
#include <iostream>
using namespace std;
int main()  
{
  int fin;
  string mass[4];
   
  for(int i = 0; i <= 3; i++)
  {
   switch(i)
   {
   case 0: mass[i] = "iron"; break;
   case 1: mass[i] = "gold"; break;
   case 2: mass[i] = "silver"; break;
   case 3: mass[i] = "titan"; break;
   }
   cout<<i+1<<") "<<mass[i]<<"\n";
  }
cin>>fin;
}


Спасибо

Добавлено (11.01.2014, 20:23)
---------------------------------------------
-l33t-h4xx-, мне нужно не готовые ресы подставлять, а те которые будут существовать, тоисть массив должен заполнится автоматически


TEST =>
Мои игры:
Kill your brain
Space Conflict
Zombie Day
Bounce PC
Extra ball 2012

Это спасибо в карман не положишь, а в репутацию можно. +1


Сообщение отредактировал Shevron_7 - Суббота, 11 Января 2014, 20:12
divol13Дата: Суббота, 11 Января 2014, 20:55 | Сообщение # 5
участник
Сейчас нет на сайте
а почему бы не сделать просто
mass[0] = ...
mass[1] = ...
или это уже не молодежно?


Shevron_7Дата: Суббота, 11 Января 2014, 20:58 | Сообщение # 6
маньяк-бомбист
Сейчас нет на сайте
уже все сделал, еще раз всем спасибо

TEST =>
Мои игры:
Kill your brain
Space Conflict
Zombie Day
Bounce PC
Extra ball 2012

Это спасибо в карман не положишь, а в репутацию можно. +1
OpenGOOДата: Воскресенье, 12 Января 2014, 14:15 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Ещё проще было инициализировать массив так:

Код
string mass[] = {"iron", "gold", "silver", "titan"};


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
Форум игроделов » Программирование » C/C++ » ERROR (C++)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг