Написал код.
Компилятор ругается, что элементы массива не константные.
Но я явно написал, что они константные.
Что за дела?
#include <iostream>
#include <cstdio>
using namespace std;
int main ()
{
setlocale (LC_ALL, "Russian");
const int pass[] = {123456, 654321};
char auth[100];
cout << "Введите пароль: ";
gets (auth);
switch (atoi (auth))
{
case pass[0]:
cout << "You are Admin!";
break;
case pass[1]:
cout << "You are User!";
break;
default:
cout << "Password is NOT true!";
break;
}
system ("pause");
return 0;
}
Не понимаю логику твоей программы. Зачем два пароля упрятывать в массив, а потом сравнивать из свичем? Он принимает как раз целочисленные константы, а не указатели.
04 Дек 2012, 19:15Float, ну элементы массива pass целочисленные же. Вот и думаю, почему свитч их не воспринимает.
04 Дек 2012, 19:16Diversant, у тебя же массив. И к слову, достаточно большой массив лучше проверять в цикле, обычным else-if.
Я так и не пойму, почему компилятор ругается, элементы массива pass типа int, какой и нужен свитчу. Что не так?
04 Дек 2012, 19:24обычный иф-елс в помощь.
7. смысл сообщения понял только после 4 прочтения, чти выше.