Eingabe in *.txt speichern
-
Habs herrausgefunden!
scanf("%s", notiz);
müßte eigentlich richtig sein!
Bekomme aber immer noch die Fehlermeldung
-
nnotiz mus sauch auf einen gültigen Speicher zeigen. Du kannst z.B. per malloc ein wenig speicher reservieren, musst aber dann aufpassen, dass der Benutzer auch maximal soviele Zeichen eingibt, wie du Platz reserviert hast
-
So hab wieder ein bischen getüftelt!
Nun wird die Zeichenkette von notiz auch übertragen und in die Datei geschrieben.Aber wie soll es anders sein, gibt es jetzt wieder ein neues problem.
Die Eingabe wird nur richtig geschrieben wenn sie ohne Leerzeichen erfolgt.why
Weiß leider nicht was malloc ist, bin erst seit ein paar Tagen dabei c zu lernen.
Was man nicht alles macht wenn man langeweile hat
-
Ähm, ja.
Dann würde ich mal vorschlagen, Du verschiebst das mit den Dateien noch ein wenig, und beschäftigst Dich erst mal mit grundlegenderen Dingen, wie Eingabe über die Tastatur, ausgabe auf dem Bildschirm, Zeiger und Kontrollstrukturen. Die sind für den Anfang ein wenig besser.
grüße Con@n
-
Hast w*****einlich recht, erst mal kleine Brötchen backen.
Dann werd ich jetzt erst mal ein bischen im schlauen Buch
nachlesen.trotzdem thx
:p
-
ups falscher smilie
-
für den fall, dass du das prob noch nicht gelöst hast...
scanf liest standardmässig nur bis zu speziellen zeichen,
es bricht also bei leerzeichen u.a. ab.lösung: definiere es zum beispiel so:
scanf("%[^\n]s",string);
damit wird erst bie einem newline zeichen abgebrochen (kannst
beliebige ¨zeichen einfügen, die dann alle zum leseabbruch führen)z.B. würde:
scanf("%[^a\n]s",string);
das einlesen bei dem ersten auftreten eines "a" oder eines newlinezeichens abbrechen.
-
scanf ist böse
und so eine kryptische syntax um mit scanf die ganze zeile zu lesen ist noch böseram besten ist fgets
-
Original erstellt von Shade Of Mine:
**scanf ist böse
**Warum?
-
Original erstellt von ppc:
Warum?Weil man bei fgets eine genaue Kontrolle über die Anzahl der einzulesenen Zeichen hat - wurde deswegen auch schon mal belehrt
-
char *fgets(char *s, int size, FILE *stream);
Du meinst wohl scanf und co....
-
oh, tschuldigung...
ich habe anstatt "eine genaue Kontrolle" ""keine genaue kontrolle" gelesen.
-
scanf und co sind nicht böse!!!
die lieben kleinen sind total praktisch...
oder wie willst du nen string formatieren???ok... die anwendung um eine zeile einzulesen
ist vielleicht etwas dämlich... aber es geht.
und für alle anderen sachen eignen sich die
dinger super
-
Original erstellt von Acid-Sky:
**scanf und co sind nicht böse!!!
die lieben kleinen sind total praktisch...
oder wie willst du nen string formatieren???
**Buffer overflows sind boese - und scanf ist gut zum buffer overflown geeignet.
lieber zuerst fegts machen und dann sscanf auf den string - das ist sicherer, es sei denn du schreibst gerne unsichere software