Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Probleme C++; Text.c_str();

<<< zurück   -1- -2- -3-  
Pratsch - 31
Champion (offline)

Dabei seit 07.2009
2821 Beiträge

Geschrieben am: 20.07.2011 um 18:54 Uhr
Zuletzt editiert am: 20.07.2011 um 18:55 Uhr

Zitat von download:

Warum willst du das eigentlich in einen Array kopieren der 15 stellen hat? 16 Zeichen in deinem Textfeld und dein Programm schmiert ab.
Welche Klasse hat denn edGesucht?


Ich geh mal davon aus, dass er es schon davor weiß wie viel Zeichen sein String hat.

Außerdem kann man das auch verhindern. Falls man es nicht genau weiß.

awa

Pratsch - 31
Champion (offline)

Dabei seit 07.2009
2821 Beiträge

Geschrieben am: 20.07.2011 um 18:56 Uhr
Zuletzt editiert am: 20.07.2011 um 19:01 Uhr

Zitat von jann93:

Wenn ich dich nochmal belästigen durfte: Was bedeutet genau diese 14?


Kurz gesagt, dass er nur 14 Zeichen reinkopiert. Da dein Array nur platz für 14 Zeichen hat.

awa

BlackRock - 48
Experte (offline)

Dabei seit 02.2007
1148 Beiträge
Geschrieben am: 20.07.2011 um 18:56 Uhr

Zitat von jann93:

Wunderbar hat geklappt.
Vielen Vielen Dank.

Wenn ich dich nochmal belästigen durfte: Was bedeutet genau diese 14?

Dass nicht mehr als 14 Zeichen kopiert werden, egal wie lang der String ist. Wenn man das nicht macht, z.B. mit ::strcpy(), kommt es bei zu langen Eingaben zu Pufferüberläufen, wahrscheinlich auch zum Absturz.

"It is more important that innocence be protected than it is that guilt be punished." (John Adams)

download - 33
Halbprofi (offline)

Dabei seit 07.2006
181 Beiträge

Geschrieben am: 20.07.2011 um 19:02 Uhr

Zitat von BlackRock:

Zitat von download:

char cGesucht[15];
Naja davon geh dann eben aus^^

In einem char array kann alles mögliche stecken, EBCDIC, Shift-JIS, UTF-7, ...

Klar, man kann auch Programmcode speichern, aber normalerweise sind es eben ascii zeichen dachte ich immer?

http://ouned.de

BlackRock - 48
Experte (offline)

Dabei seit 02.2007
1148 Beiträge
Geschrieben am: 20.07.2011 um 19:09 Uhr
Zuletzt editiert am: 20.07.2011 um 19:13 Uhr

Hängt davon ab wer dir den char* zurückgibt. Die Win32-API benutzt die aktuelle Codepage (die auf Japanischen System meist Shift-JIS ist), auf OS X ist es UTF-8. Soweit ich weiss gehen die ganzen Linux- und BSD-Distributionen auch zu UTF-8 über.

"It is more important that innocence be protected than it is that guilt be punished." (John Adams)

Klischeepunk - 41
Champion (offline)

Dabei seit 01.2005
8907 Beiträge

Geschrieben am: 21.07.2011 um 08:45 Uhr

Zitat von BlackRock:

Hängt davon ab wer dir den char* zurückgibt. Die Win32-API benutzt die aktuelle Codepage (die auf Japanischen System meist Shift-JIS ist), auf OS X ist es UTF-8. Soweit ich weiss gehen die ganzen Linux- und BSD-Distributionen auch zu UTF-8 über.

Moment, das ist vllt. ne Standardoption aber bleibt letztendlich dir überlassen über entsprechende Flags/einstellungen dafür zu sorgen.

Dieser Post wurde 2 mal ROT-13 verschlüsselt.

BlackRock - 48
Experte (offline)

Dabei seit 02.2007
1148 Beiträge
Geschrieben am: 21.07.2011 um 11:26 Uhr

Weswegen man am besten nie char[] benutzt sondern eine Stringklasse auf höherer Abstraktionebene.

"It is more important that innocence be protected than it is that guilt be punished." (John Adams)

<<< zurück
 
-1- -2- -3- [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -