Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problema riconoscimento variabili c++
Forum - C/C++ - problema riconoscimento variabili c++

Avatar
qwertyroby123 (Normal User)
Newbie


Messaggi: 2
Iscritto: 24/10/2013

Segnala al moderatore
Postato alle 15:01
Giovedì, 24/10/2013
devo ricevere in input 5 valori che possono essere sia una lettera che un numero (quindi li ho dichiarati in char ), una volta presi in input se si tratta di numeri li vorrei convertire in integer per farli sommare altrimenti in base ad ogni lettera la variabbile dovrebbe prendere un determinato valore numerico sempre integer come si fa a far controllare che una variabbile sia numerica piuttosto che alfabetica automaticamente al c++ ?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:08
Giovedì, 24/10/2013
"Automaticamente" il linguaggio non fa nulla. Ovviamente devi scrivere del codice.

In un ciclo for prelevi ogni carattere e lo controlli con la funzione

isdigit

http://www.cplusplus.com/reference/cctype/isdigit/


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
qwertyroby123 (Normal User)
Newbie


Messaggi: 2
Iscritto: 24/10/2013

Segnala al moderatore
Postato alle 15:20
Giovedì, 24/10/2013
ora ho un altro problema capisce che è un numero ma quando lo converto in numero non mi da il numero che gli ho inserito io ad esempio gli do in input 1 lui mi restituisce 49

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    char c1 ;
    int n1;
    cin>>c1 ;
    if (isdigit(c1)){
    n1=c1;
  
    cout<<n1<<endl;}
    else
    cout<<"no numero"<<endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:05
Giovedì, 24/10/2013
Tu sai cosa è la tabella ASCII?

Il carattere inserito è codificato ASCII quindi il codice 49 è per il carattere '1'

Quindi dovrai scrivere

n1=c1-'0';


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote