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

    Conversione di una stringa in int C++

    Salve a tutti, scusate per la domanda ormai trita e ritrita; ho già effettuato una ricerca sul forum che mi restituisce molti topic, li ho letti, ma nessuno risponde alla mia domanda.
    Ho visto soluzioni alla mia domanda che risolvono il problema con istruzioni del tipo "atoi", "itoa", "sprintf", "scanf", ecc... una domanda... ma queste per caso non sono istruzioni del C?
    Se la risposta è si, vorrei chiedere gentilmente il metodo di conversione interamente in C++ senza nessuna istruzione del C o riferimenti al C.
    Esempio:
    codice:
    string num = "07";
    int x;
    Come trasformare la stringa "07" in numero intero 07? (o anche solo 7).
    Possibilmente senza usare char, ma solo stringhe.
    Esiste per caso una soluzione in questi termini?

    Grazie a tutti per la disponibilità!

  2. #2
    usa

    codice:
    std::istringstream stringa(numero); stringa >> number;
    io preferirei atoi (stringa.c_str());


  3. #3
    Grazie mille!

    Dunque quelle istruzioni che ho menzionato prima sono veramente del C e non del C++?
    Ma come mai allora si fa un minestrone dei due linguaggi?

    Che libreria devo aggiungere all'inizio del file oltre le solite?

    Grazie ancora a tutti!!!

  4. #4
    Vedi se ti funziona:

    codice:
    template <typename T>
    T stot( const std::string &str )
    {
    	std::istringstream sstream(str);
    	T value;
    	sstream >> value;
    	
    	if( sstream.rdstate() & std::stringstream::failbit )
    		throw std::ios_base::failure("Unable to convert the string\n");
    	
    	return value;
    }

    Fracty - The Fractal Generator



    If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.

  5. #5
    Ehm... chiedo scusa per l'ignoranza (sono ancora agli inizi), ma non capisco il tuo codice GliderKite...

    Cmq ti ringrazio per la risposta

  6. #6
    Tranquillo, non ci sono problemi, provalo partendo da qui:

    codice:
    int main()
    {
    	std::string word("23.892");
    	
    	try{ std::cout << stot <double> (word); }
    	
    	catch( std::ios_base::failure &exc )
    	{
    		std::cout << exc.what();
    	}
    	
    	
    	return 0;
    }
    Fracty - The Fractal Generator



    If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.

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.