void placeg(game** g){
//place marble;
char row, col;
char* buffer = NULL;
printf("Please enter a move: ");
scanf(" %c%c%s", &row, &col, buffer);
// scanf(" %s", buffer);
pos p = make_pos(charToInt((int)row),charToInt((int)col));
place_marble((*g),p);
board_show((*g)->b);
}
Когда я запускаю функцию scanf выше в терминале, я ожидаю прочитать и взять два символа. Например, «AB» будет допустимым входом терминала. Но в этом случае я хочу, чтобы мой код мог обнаруживать неверные данные, такие как «ABC», и соответственно информировать пользователя. Следующий код выше не работает как для действительных, так и для недействительных входных данных, но я не знаю почему. Любая идея будет принята с благодарностью. Кроме того, как я мог бы потенциально обнаружить другие виды недействительных входных данных, таких как «A» или «», и соответственно информировать пользователя?