Archivlink: javarea.de Forum > Talk Talk > C++ Frage -> Char Länge
Vollständigen Link anzeigen: javarea.de Forum > Talk Talk > C++ Frage -> Char Länge

Pages: [1]

geschrieben von Michael am 25.10.2003 - 16:44
Hi Leute!
Ich habe eine Frage in Sachen C++

und zwar speichere ich einen Wert in einer Datei wie folgt:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
char wohnort[100];

cout << "Wohnort" << flush;
cin   >>   wohnort;

adressDB = fopen("D://C++ AdressDB//DB//adressDB.dat", "a+");
fprintf (adressDB, "%s\n" ,wohnort);
fclose(adressDB);

Funktioniert auch alles super, solange der Wohnort ein Wort ist (zB.: Pichl), wenn ich jetzt Pichl bei Wels eingebe, bricht das komplette Programm ab...
An was liegt das und wie kann ich ihm sagen, dass der Zeichentyp auch Leerzeichen beinhalten darf...

Danke im vorraus...

geschrieben von Patrick am 26.10.2003 - 11:30
Hi Mike,

in C++ ist das so eine Sache... Man sollte in C++ nicht mit den C-Strings arbeiten...

Es gibt in C++ eine String Klasse. Ich poste dir mal ein Beispiel, wie du deine Sache lösen solltest...

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
#include <iostream>
#include <string>

int main() {
	std:: string wohnort;

	std:: cout << "Wohnort: " ;
	std:: getline(std::cin, wohnort);
	std:: cout << "Sie wohnen in " + wohnort;
	return 0;
}


Durch getline erreichst du, dass er bin zum '\n' (EOL - End of Line) die Sache in den String wohnort speicherst

Wenn dir das std:: zu viel zu schreiben ist, dann musst du unter die Zeile: #include <string> folgendes schreiben: using namespace std;
dadurch erreichst du, dass immer auf diesen namespace zugegriffen wird und du musst es explicit nicht mehr angeben.
Ich mache das so, da man bei größeren Projekten evtl. inhalte aus mehreren Namespaces braucht und dann muss man es wie in meinem obigen Beispiel machen.

Hoffe ich konnte dir kurz helfen...

Patrick


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.