Я пытаюсь проверить, соответствует ли пользовательский ввод определенному значению в многомерном массиве char. Но я не могу понять, как это сделать. Пользовательский ввод будет числом от 1 до 9. Я буду зацикливаться на моем массиве, чтобы найти подходящее значение. Мой код выглядит следующим образом:проверка значений в многомерном массиве char, cpp
char input;
getline(cin,input);
char gameBoard[3][3] = {{'1','2','3'},
{'4','5','6'},
{'7','8','9'}
};
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
gameBoard[i][j]; //SOME CODE TO COMPARE THE VALUE TO USER INPUT
}
}
Я попытался использовать strcmp, но могу сделать это только для одномерного массива.
Я также попытался преобразования значения обугленного в ряд по atoi, но я получаю сообщение об ошибке,
error: invalid conversion from 'char' to 'const char*' [-fpermissive]|
Любые предложения о том, как сравнить будут оценены. Благодаря
Я считаю по крайней мере три или четыре вещи, которые ошибочны в этом вопросе. Мне кажется, что вы слишком быстро, с этим C++. Прежде чем приступить к решению довольно сложной логики в этой проблеме, мне кажется, что вам нужно вернуться и потратить больше времени на изучение основ. Как то, что это char, что такое std :: string и какой из них используется std :: getline. В чем разница между символом и целым числом и т. Д. Если у вас все еще нет четкого понимания этих основ, попытка кодирования такой проблемы будет практически невозможна. –
Устойчивое обращение с пользовательским входом, как известно, затруднено. Вы можете использовать 'geline()', но вам нужна строка 'std :: string' для него как второй аргумент. Если вы полагаетесь на то, что пользователь вводит только один символ (число) в строке, тест просто является 'string s; getline (cin, s); if (s [0] == gameBoard [i] [j]) ... ' –
@SamVarshavchik отметил. Спасибо –