So che sembra stupido, ma sto usando MinGW32 su Windows7 e "to_string
non è stato dichiarato in questo ambito". It's an actual GCC Bug e ho seguito these instructions e non hanno funzionato. Quindi, come posso convertire un int in una stringa in C++ 11 senza usare to_string
o stoi
? (Inoltre, ho il flag -std=c++11
abilitato).Come posso convertire un int in una stringa in C++ 11 senza usare to_string o stoi?
risposta
non il suo il metodo più veloce, ma si può fare questo:
#include <string>
#include <sstream>
#include <iostream>
template<typename ValueType>
std::string stringulate(ValueType v)
{
std::ostringstream oss;
oss << v;
return oss.str();
}
int main()
{
std::cout << ("string value: " + stringulate(5.98)) << '\n';
}
È possibile utilizzare stringstream
.
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
int main() {
int num = 12345;
stringstream ss;
ss << num;
string str;
ss >> str;
cout << str << endl;
return 0;
}
scusami, già risolto. – songziming
Si potrebbe rotolare la propria funzione per farlo.
std::string convert_int_to_string (int x) {
if (x < 0)
return std::string("-") + convert_int_to_string(-x);
if (x < 10)
return std::string(1, x + '0');
return convert_int_to_string(x/10) + convert_int_to_string(x%10);
}
Perché farlo quando C/C++ ha già tali funzioni? –
"Potresti"! = "Dovresti". Basta sottolineare un'altra possibile cosa. –
@GregHewgill, non lo farà. Vedi http://ideone.com/tyvjms per l'esempio in esecuzione. –
Mi piacerebbe rispondere in modo diverso: basta ottenere mingw-w64.
Scherzi a parte, mingw32 è così pieno di problemi che non è nemmeno divertente:
- http://sourceforge.net/p/mingw/bugs/1578/
- http://sourceforge.net/p/mingw/mailman/message/23108552/
- wWinmain, Unicode, and Mingw
Con MinGW-W64 si ottiene gratuitamente:
- il supporto per il punto di ingresso di Windows Unicode (
wmain
/wWinMain
) - meglio C99 supporto
- migliore C++ 11 di supporto (come si vede nella tua domanda!)
- grande supporto per file
- supporto per C + +11 thread
- supporto per Windows 64 bit
- cross compilazione! così puoi lavorare sulla tua app Windows sulla tua piattaforma preferita.
A partire da MinGW-w64 4.9.2, è supportato anche C++ 14 (e C11 anche IIRC). – Chnossos
Ok, mi hai convinto haha .. Lo disinstallerò e scaricherò mingw-w64. –
Nonostante il fatto che le risposte precedenti sono meglio io voglio dare un'altra possibilità di implementare un INT al metodo di stringa che segue il successivo codice di vecchia scuola:
#include <string>
std::string int2string(int value) {
char buffer[20]; // Max num of digits for 64 bit number
sprintf(buffer,"%d", value);
return std::string(buffer);
}
causerà un buffer overflow su un sistema con interi a 64 bit –
Nop, Allucinante 64bit ha bisogno di 19 cifre (nell'esempio ci sono 20 buffer di cifre) 9,223,372,036,854,775,807 (19 cifre) – omotto
ti sei dimenticato il segno meno –
- 1. Come posso convertire una stringa in un int in Python?
- 2. Come convertire un int in una stringa?
- 3. Come convertire Nonetype in int o stringa?
- 4. OCaml - Come posso convertire int in stringa?
- 5. Come posso convertire un float/double in ASCII senza usare sprintf o ftoa in C?
- 6. Convertire una stringa in int in Rust?
- 7. Aggiungi cifra a un int senza convertire in stringa?
- 8. Objective-C, come posso convertire un double in un int?
- 9. Come posso convertire un percorso Unicode in una stringa c?
- 10. Come posso convertire una stringa in char [] senza copiare l'oggetto?
- 11. Come convertire un valore int in stringa in Go?
- 12. Come posso convertire un int a due byte in C#?
- 13. Posso usare il preprocessore C per convertire un intero in una stringa?
- 14. Come posso convertire un singolo carattere in una stringa?
- 15. Come convertire un GUID in una stringa in C#?
- 16. Come posso convertire una stringa in jsx?
- 17. Come posso convertire una stringa in un chiave segreta
- 18. Come convertire da int a stringa nell'obiettivo c: esempio codice
- 19. Come convertire int * in int
- 20. Come si aggiunge un int a una stringa in C++?
- 21. Come posso convertire nchar in stringa in C#?
- 22. Scala: convertire la stringa in int o Nessuno
- 23. Come posso convertire un int a un NSString?
- 24. Posso usare C++ 11 con Xcode?
- 25. Come posso convertire BitArray in single int?
- 26. come convertire una stringa c in una stringa d?
- 27. Come posso convertire una stringa lunga in una stringa in C++?
- 28. Provare a convertire un int [] in int [,] utilizzando C#
- 29. Convertire un float64 in un int in Go
- 30. Come posso convertire una stringa in un BigInteger?
Beh, si potrebbe utilizzare al posto MinGW-W64 che lo supporta –
Sarebbe 'boost :: lexical_cast' una soluzione accettabile? –
Si potrebbe usare 'sprintf'. In realtà ci sono * molte * opzioni: 'atoi' e company (non-abbastanza-standard), string stream, le funzioni printf. –