Ausgabe einer Zeichenkette über Zeiger
-
Beim schnellen durchlesen fällt auf dass du in Zeile 34 den Adressoperator entfernen solltest, ausserdem möchtest Du einen string einlesen also nutze %s und nicht %c
-
...hab ich eig. verscht. Das
und
siehst Du ja noch vor und nach dem Code. Was hab ich falsch gemacht?
-
CJens schrieb:
...hab ich eig. verscht. Das
und
siehst Du ja noch vor und nach dem Code. Was hab ich falsch gemacht?
Hm.. stimmt.. keine Ahnung
Naja aber wie gesagt die Antwort auf den problem ist dass "%c" eben nur ein Zeichen und keine Zeichenkette einliest. :xmas1:
-
Danke
Jetzt funktioniert es *Juhu*Und dafür hab ich jetzt drei Stunden gebracht... ich hoffe, es ist am Anfang normal
Schönen Abend und bis zum Nächste mal.
-
...aber so viele Cookies gibts in dem Frame auch nicht
-
Ach ja, abgesehen davon, auch wenn Du noch Anfänger bist:
- Es heist int main() oder int main(int argc, char *argv[]) aber niemals void main
- Beim einlesen eines strings mittels scanf() sollte, nein, muss man die maximale Anzahl an Zeichen beschränken:char buffer[16]; scanf("%15s", buffer);
Bin mir jetzt auch nicht ganz sicher ob scanf() das letzte Zeichen automatisch 0 setzt.. vielleicht weis das ja jemand.
-
cooky451 schrieb:
Bin mir jetzt auch nicht ganz sicher ob scanf() das letzte Zeichen automatisch 0 setzt.. vielleicht weis das ja jemand.
1. Warum nicht?
2. Warum probierst du es nicht?
-
Zum einlesen von Strings lieber fgets verwenden...
-
wxSkip schrieb:
2. Warum probierst du es nicht?
Weil probieren doof ist. Nachher ist das von der Implementation abhängig und du suchst dir einen Wolf, weil auf einer anderen Maschine der Code, der schon mal funktioniert hat, nicht mehr funktioniert.
wxSkip schrieb:
1. Warum nicht?
Wobei ich mir nicht sicher bin, ob die abschließende 0 nicht Teil des Strings ist? Wäre annehmbar. Klärt aber immer noch nicht die Frage. Weil wenn der String länger ist, liegt die Null ausserhalb des Bereichs und muss wieder von der Funktion gesetzt werden.
-
Na dann schaun' mer mal
.
http://www.cplusplus.com/reference/clibrary/cstdio/scanf/
Hier steht's zwar nicht explizit drin, aber das Beispiel verwendet scanf() so und das sollte doch korrekt sein.