Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C++] string to integer

    ciao,
    come faccio a convertire una varibile string in una int ??
    o meglio, come posso leggere da un file di testo una riga e metterla in un int ??
    Il mio problema è che devo leggere un numero contenuto nella prima riga di un file di testo, attualmente lo faccio così :


    ......
    string str;
    ifstream F;
    F.open("nomefile");
    getline(F,str);
    .....

    solo che in questo modo ottengo una string, mentre vorrei un int.
    Come posso fare ? le soluzioni che vedo sono o leggere direttamente un int o fare un casting da string a int. purtroppo non so fare nessuna delle due cose.
    HELP !!

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    L'ho chiesto anche io qualche giorno fa, mi hanno pure risposto e funzionava tutto, ora non ricordo, ma se fai una ricerca....
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Ok, trovato la funzione era:
    codice:
    intero = atoi(stringa);
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    ho provato ma non funziona...

    mi dà questo errore :

    home/CrashOverride/prova1/src/prova1.cpp:36: error: cannot convert `std::string' to `const char*' for argument `1' to `int atoi(const char*)'

    p.s. : stò lavorando sotto Linux con Kdevelop.

  5. #5
    Prova con:
    codice:
    ....
    str_int = str.ToInt();
    ....
    converte in intero (ToInt) la variabile stringa str.
    Non so se va bene con tutti i compilatori, con quello della Borland funziona..

    Se no prova con il casting che funziona di sicuro:
    codice:
    ....
    str_int=(int)str;
    ....
    In str_int ci andra, il valore della stringa 'str' trasformato in intero dall'istruzione (int)...

    Ciao..
    Il linguaggio migliore e quello che ti crei da solo...

  6. #6
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Non so se un cating del genere funziona....ma per stringa cosa intendi un array di char o l'oggetto?
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  7. #7
    Originariamente inviato da Xadoom
    Non so se un cating del genere funziona....ma per stringa cosa intendi un array di char o l'oggetto?
    intendevo l'oggetto.

    Se no prova con il casting che funziona di sicuro:

    code:
    ....
    str_int=(int)str;
    ....


    In str_int ci andra, il valore della stringa 'str' trasformato in intero dall'istruzione (int)...
    il casting l'avevo già provato e non funziona, probabilmente perchè la variabile str è un oggetto.

    provo con str.ToInt()....poi vi dico....

  8. #8
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Ah, ecco perchè il metodo che ti avevo postato non funge....allora mi spiace non so dirti, non ho dimistichezza con gli String
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  9. #9
    ho provato con il metodo .ToStr() ma non funziona.


  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Prova così:
    codice:
    int valore = atoi(str.c_str());
    c_str() dovrebbe ritornare un puntatore a carattere (NULL terminated character array).

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.