Leertaste ala char Zeichen?
-
So ich habe nun ein Programm mit dem ich txt dateien anlegen beschreiben und lesen kann, doch wenn ich z.B nen Namen als txt-name haben will, also Vor- und Nachname, dann nimmt er immer nur den Vornamen, und mit "_" zu arbeiten ist lästig.
Also wie kann ich z.Bchar lol[50];
...
cin >> lol; //Da will ich jetzt "Max Mustermann" haben und nicht nur Max
Wie mache ich das??? Ich hoffe Ihr habt dazu eine Antwort
MFG: DerLateinProfi
-
naja ... mach es mit std::getline
#include <string> // ... int main() { std::string string_input; std::getline(std::cin, string_input); // wenn de jetzt char haben willst nimm string_input.c_str(); }
-
Also bei mir findet der "getline" nicht. Ich weiß nicht wie sie das machen, doch bei mir kommt dann immer ein Fehler, dass getline kein std wäre. Also wie soll ich das dann machen????
MFG: DerLateinProfi
-
Sie müssen den Header string includieren ... wie mein Beispiel dies extra verdeutlichte.
-
hier wird ge(SIE)st
isa lustig;)
-
Ich habe den header natürlich includiert, doch habe ich dummerweise
#include <string.h> includiert!
Funktioniert anscheinend doch!Ich danke ihnen vielmals!
MFG: DerLateinProfi
PS: Machen sie weiter so, und sie können bei Microsoft anfangen!^^
-
Also Ich hatte gedacht es würde funktionieren, doch haben sie etwas von ".c_str" geschrieben, wie sollte der Code nun aussehen, wenn ich die char acDateiname haben will. Also acDateiname ist der Variablen name. Wie würde der Code dann aussehen? Könnten sie mir das mal posten? Wäre ihnen ein weiteres mal sehr verbunden.
MFG: DerLateinProfi
-
vll:
strcpy(acDateiname,string_input.c_str());
-
@Boris: 6. Setzen

@DerLateinProfi: Es kommt drauf an. Wenn Sie nur einen const char-Pointer haben wollen, reicht es aus die c_str-Funktion des std::strings aufzurufen. Wollen Sie allerdings den Inhalt in einen Array kopieren, brauchen sie in der Tat strncpy. Dabei ist es allerdings wichtig, das Sie nicht strcpy nehmen, da ersteres noch die maximale Größe als Parameter verlang. D.h. werden Sie so keine Probleme mit Bufferüberlauf bekommen.
-
sorry;) das waren nummal schwaceh erinnerungen meiner C zeiten;)