Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    101

    C++ Aiuto su Argomenti della mian

    Ciao,
    una domanda facile facile, se io devo passare alla main un numero invece che una stringa come faccio poi a salvarlo in una variabile int? Non ci riesco...
    Esempio, voglio passare il numero 5 alla main,
    per richiamare il programma scrivo
    nomeprogramma 5
    ma come metto questo 5 in una variabile int?
    se faccio il cast e scrivo
    int i = (int)argv[1];
    i non assume il valore 5, ma 53, il valore ascii del carattere '5'
    aiutatemi....
    :-)
    Dado

  2. #2
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    C considera i caratteri come numeri in un range da 0 a 255 per poter rappresentare la tabella ASCII.. quindi se passi un carattere da convertire in numero:

    int i = argv[1] - '0';

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    101

    Ma...

    Grazie, questo è un problema risolto, però se ho da convertire 55 come numero? sono due caratteri, quindi una stringa, questa come la converto?
    Dado

  4. #4
    int i = argv[1][0] - '0';

  5. #5
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    Non mi viene in mente nessuna funzione esistente (credo che ci sia).. cmq puoi risolvere tenendo a mente che...

    55 = 5*10+5*1

    634 = 6*100 + 3*10 + 4*1

    e ti puoi creare una tua funzione..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    101

    Grazie

    Grazie mille, è quallo che ho fatto, speravo di trovare una soluzione più veloce^__^ ciao ciao
    Dado

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    167
    E' da un po' che non smanetto in C e C++, ma non esiste mica la funzione
    atoi(stringa_da_convertire_in_intero) ?

  8. #8
    Così può andare?
    codice:
    #include <stdio.h> 
    #include <stdlib.h> // atoi()
    
    int main(int argc, char *argv[]){
        int i=0;
        char *p, c[10];
        p=c;
    
        if(argv[1]){ 
    	p=argv[1];
            i=atoi(p);
            if(i)printf("%d INT\n",i); // riconosce parametri maggiori di (0) zero
    	else printf("%s NON INT\n",argv[1]);
        }
        else printf("\aZERO PARAMETRI INSERITI\n");
    	
        return 0;
    }
    ...Terrible warlords, good warlords, and an english song

  9. #9
    Vedo svariate righe superflue..

  10. #10
    Così va meglio??? :adhone:
    codice:
    #include <stdio.h> 
    #include <stdlib.h> // atoi()
    
    int main(int argc, char *argv[]){
        
        if(char *p=argv[1]){
            if(int i=atoi(p))printf("%d INT\n",i); // riconosce parametri maggiori di (0) zero
    	else printf("%s NON INT\n",argv[1]);
        }	
        else printf("\aZERO PARAMETRI INSERITI\n");
    	
        return 0;
    
    }
    ...Terrible warlords, good warlords, and an english song

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.