Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 6403
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
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: 6403
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote