Ich möchte unbegrenzte Zeichen erhalten, tatsächlich habe ich erstellt char *, ich benutze cin dafür, und ich möchte es in Zeichenfolge ändern. Ich weiß nicht die Länge der Eingabe, die Benutzer eingeben, also habe ich diese Lösung für mich selbst gemacht. Kann mir jemand sagen plz, wie man ein char * bekommt, ohne die Größe der Eingabe zu wissen und in eine Zeichenfolge umzuwandeln. danke.Erhalten unbegrenzte Char in Cpp
Antwort
Da es C++ ist. Verwenden Sie einfach std::string
Wenn Sie wirklich char*
Blick auf this topic
verwenden müssen stattdessen eine char *
verwenden, verwenden Sie die Standard-Bibliothek.
#include <string>
#include <iostream>
int main()
{
std::string data;
std::getline(std::cin, data);
std::cout << data << '\n';
}
Dies wird eine Zeichenfolge beliebiger Länge lesen (zumindest, bis eine Neuen-Zeile eingegeben wird, die in data
aufgenommen wird nicht) und dann ausdrucken.
Sie können auch den Status std::cin
überprüfen, um zu testen, ob Fehler aufgetreten sind.
Vielen Dank @Peter, aber eigentlich suche ich nach dem Weg, den ich Char bekommen kann. danke für Ihre Antwort! – Zahra
@ Zahra - Lesen Sie die Dokumentation für 'std :: string'. Es hat Mitgliedsfunktionen, die Zugriff auf die zugrundeliegenden Daten bereitstellen ..... als einen Zeiger auf (das erste Element von) einem dynamisch zugewiesenen Feld von "char", d. H. Ein "const char *". Wenn Sie versuchen, mit einem rohen Zeiger (anstelle von "std :: string") zu arbeiten, müssen Sie die Speicherzuweisung manuell verwalten und (ebenso wichtig) die Zuweisung aufheben, wenn Sie sie nicht mehr benötigen. – Peter
- 1. Drucke const char in cpp
- 2. Wie konvertiert man uint8_t [] [] in char [] in cpp
- 3. Unbegrenzte Platzhalter in Java
- 4. Unbegrenzte Eingabe in JAVA
- 5. Warum kann ich Char * * nicht durch Rückgabe in cpp char * hinzufügen?
- 6. Zurück const char * keine gute Zeichenfolge (CPP) drucken
- 7. So lesen Sie unbegrenzte Zeichen in C
- 8. CPP/C++ Zeigerwert erhalten oder depointerize Zeiger
- 9. unbegrenzte Array in Visual C#?
- 10. Abrufen von Antworttext von curl in cpp
- 11. Code Spiegelstrom char Position erhalten
- 12. Erwartet eine Erklärung CPP
- 13. AMPL EROR - unbegrenzte Variable
- 14. Byte-Wert von Char erhalten
- 15. Java Unbegrenzte Array
- 16. Python in CPP eingebettet: Wie Daten zurück zu CPP
- 17. Swift unbegrenzte Speicherwachstum
- 18. Unbegrenzte Protokolle mit logrotate
- 19. CodeIgniter - unbegrenzte Parameter?
- 20. mysql unbegrenzte Primärschlüssel Autoinkrement
- 21. Wie deklarieren Sie unbegrenzte Parameter in DocBlock?
- 22. Rechner Fall '5' unbegrenzte Optionen
- 23. Multiple Signal Verwendung in cpp
- 24. FreeRTOS CPP Function Pointer
- 25. static_cast void * char * vs static_cast ungültig ** char **
- 26. Probleme mit Regex in CPP
- 27. libcaffe Fehler in cpp Eclipse
- 28. Messfunktionen Speichernutzung in cpp
- 29. Template-Funktionen in cpp
- 30. Umwandlung von char ** in char * oder char
Warum benutzen Sie nicht einfach 'std :: string'? – UnholySheep
Sie könnten eine verknüpfte Liste erstellen. Aber das ist im Laufe der Zeit viel weniger effizient als das, was std :: string tut, das einen Puffer enthält, der bei einer anfänglichen Größe beginnt, und dann einen größeren Puffer neu zuweist, wenn er zu groß wird. – AndyG
Eigentlich möchte ich eine andere Lösung, keine Zeichenfolge, ich möchte mein Problem lösen, unbegrenzte Char zu bekommen, gibt es sowieso außer Linkedlist? – Zahra