Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » einfache Frage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.08.2005, 17:08 Uhr
~NeuHier
Gast


Hallo,
ich kenne mich mit C++ noch nicht besonders gut aus und habe jetzt eine einfache Frage.
Folgender Code:

C++:
void funktion(char buffer[10]){
buffer[0]='#';
}

main(){
char variable[10];
strcpy(variable,"Text");
funktion(variable);
cout<<variable;  //Ausgabe: "#ext"
}





Wie kann ich machen, dass sich die variable nicht ändert, die Ausgabe also "Text" ist? Ich dachte, die Variable würde nur geändert, wenn buffer ein Pointer wäre, also *buffer?

Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.08.2005, 17:26 Uhr
predator



Ich denke, das was du suchst ist
C++:
const char variable[10]
.

Zum Thema Arrays und Pointer guck mal hier!
--
Gruß
predator
Zitat von Edsger W. Dijkstra:
Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.08.2005, 17:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ein const vorschreiben hilft auch nicht wirklich... die sache ist halt die das trotzdem nur ein pointer und nicht das ganze array kopiert wird und auf dem arbeitest du weiter (stell dir vor das wäre ein riesenarray dann müsste das jedesmal auf den stack geballert werden, das ist schon sinnvoll das sowas nicht gemacht wird). Mit nem const versuchen zu verhindern das du darauf rummüllen darfst wenn du es trotzdem tun willst hilft dir nicht wirklich weiter du musst also ggf den speicher selber kopieren (z.b. memcpy, strcpy...) und dann damit weiterarbeiten...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.08.2005, 17:59 Uhr
(un)wissender
Niveauwart


Ansonsten einfach std::string nehmen und per value übergeben, fertig.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.08.2005, 19:53 Uhr
~NeuHier
Gast


Ich habe noch eine kleine Frage:


C++:
float teilErgebnis;
teilErgebnis=calculate();
char teilErgebnis2[100];
sprintf(teilErgebnis2, "%f", teilErgebnis);
cout<<teilErgebnis;     //Ausgabe: 2e+012
cout<<teilErgebnis2;   //Ausgabe: 2000000000000,000000




Wie kann ich es anstellen, dass auch in teilErgebnis2 die Zahl nicht ausgeschrieben wird. Ich habe nämlich in dieser Variablen nicht unendlich viel Platz. Es wäre besser, wenn auch hier 2e+012 stünde (oder noch idealer 2*10^12). geht das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.08.2005, 08:37 Uhr
Tommix



Hallo,
nimm "%g" zm Formatierern.

Gruß, Tommix


Bearbeitung:

Beschreibung im MSDN:
link


Dieser Post wurde am 22.08.2005 um 08:40 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.08.2005, 00:26 Uhr
~rene1
Gast


@windalf
ist des überhaupt zulässig:
strcpy mit nem const char * als destination?
ich meine wenn des ding als const deklariert ist, dann sollte
man doch auf den speicherbereich net schrieben können oder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: