Как вводить символы и читать их как цифры? - PullRequest
0 голосов
/ 28 января 2019

Я начинающий C;Я делаю простую программу об игре «Морской бой / Морской бой»: как вы можете видеть на скриншоте, программа попросит пользователя ввести число для строки, и то же самое произойдет для столбца;Я хотел позволить пользователю ввести символ и связать его с правильным столбцом.Как я могу продолжить?

See yellow-marked output

КОД: [..]

if (CAMPO[row][column] == 3 || CAMPO[row][column] == 2 || CAMPO[row][column] == 1)
{
    ATTACCHI[row][column]='X'; //SHIP HIT!;
    printf("\nSHIP HIT!\n");
    TENTATIVI--;                                  
    CASELLE_NAVI--;                              
    if (num_suggerimenti>0)
    {
        suggerimenti(CAMPO,riga_attacco,colonna_attacco);
        num_suggerimenti--;                    
    }
    printf("\nRIEPILOGO DEGLI ATTACCHI EFFETTUATI:\n\n");
    visualizza_attacchi(ATTACCHI);
}
else
{
    ATTACCHI[row][column]='/'; //SHIP MISS!;
    printf("\nSHIP MISS!\n");
    TENTATIVI--;
    if (num_suggerimenti>0)
    {
        suggerimenti(CAMPO,riga_attacco,colonna_attacco);
        num_suggerimenti--;
    }
    printf("\nRIEPILOGO DEGLI ATTACCHI EFFETTUATI:\n\n");
    visualizza_attacchi(ATTACCHI);
}

[..]

ЗДЕСЬ ВОПРОС:

printf("Insert row number (0-9):\n");
scanf("%d",&row);
printf("Inserisci column number (A-L):\nA=0 B=1 C=2 D=3 E=4 F=5 G=6 H=7 I=8 L=9\n");
scanf("%d",&column);

извините, потребовалось несколько минут, чтобы перевести его

1 Ответ

0 голосов
/ 28 января 2019

Лучше всего использовать fgets() для чтения целых строк ввода, а затем использовать sscanf() для извлечения из него.Для столбца вы можете использовать %c формат для извлечения письма.Затем вычтите из него 'A', чтобы преобразовать его в число.

char line[10];
printf("Insert row number (0-9):\n");
fgets(stdin, line, sizeof line);
sscanf(line, "%d", &row);
printf("Inserisci column letter (A-L):\n");
fgets(stdin, line, sizeof line);
char column_letter;
sscanf(line, "%c", &column_letter);
column = column_letter - 'A';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...