char getch(); w funkcji

0

Witam.

#include <cstdlib>
#include <iostream>
#include <conio.h>

using namespace std;

int main(int argc, char *argv[])
{
    cout<<"Podaj znak: ";
    char a = getch(); 

To kawałek kodu. Program zamienia char na kod ASCII znaku i w wyniku podaje, jaki jest to rodzaj danego znaku (program działa dobrze).
To samo chciałem umieścić w funkcji:

 
int LITERY_CZY_CYFRY (char a, char b, char c, char d)
{
    int cyfra=0, litera=0;
    
    char a=getch();
    char b=getch();
    char c=getch();
    char d=getch();

Kompilator zgłasza dla zmiennych a, b, c, d:
"declaration of 'char b' shadows a parameter ".
Jak w takim razie w inny sposób pobrać kod ASCII w tej funkcji?

0

Zadeklarowałeś funkcję z parametrami, w ciele której deklarujesz zmienne lokalne o takich samych nazwach jak parametry funkcji, co powoduje, że parametry są przesłonięte przez zmienne lokalne. Jak chcesz pobrać kod ASCII znaku to po prostu rzutujesz znak na int:

char ch = getch();
int kod = (int) ch;

nie za bardzo rozumiem co chcesz zrobić.
Pozdrawiam

P.S.
Jak już używasz cout, to możesz też użyć cin, bez używania getch

cin.get(ch); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1