gets und scanf
-
Also:
Ich habe da ein großes Problem:
Wenn ich einerseits#include <stdio.h> #include <stdlib.h> void main() { FILE *datei; char text[9999]; datei = fopen("test.txt", "a"); printf("Bitte geben sie einen Text ein: "); scanf("%s", &text); printf("Sie haben \"%s\" eingegeben...", text); }
Dann schreibt er das erste wort aber wenn ich
#include <stdio.h> #include <stdlib.h> void main() { FILE *datei; char text[9999]; datei = fopen("test.txt", "a"); printf("Bitte geben sie einen Text ein: "); gets(text); printf("Sie haben \"%s\" eingegeben...", text); }
geht das erst recht nicht...
Ich würde gerne MEHR als nur ein Wort ausgeben lassen, also bitte helft mir!!!
-
was wilslt du machen, datei auslesen oder was??
cu
-
von der konsole kannst du ja so einlesen:
#include <stdio.h> #include <stdlib.h> #include <iostream.h> void main() { char text[9999]; printf("Bitte geben sie einen Text ein: "); gets(text); cout << "Sie haben: " << text << " eingegeben..."; }
von ne textdatei kann man zeilenweiße auslesen....oder je nach dem was du brauchst....meld dich noch mal!
cu
-
@surfman.
Bitte keinen Mischmasch. Entweder printf(), scanf(), ... oder cout und cin.@fliege
Bei deinem scanf() ist ein Fehler. Vor text darf kein & stehen, da text bereits eine Adresse enthält.Dass gets() nicht funktionieren sollte, wundert mich. Ist das auch wirklich so der Code, wie du ihn in der Datei stehen hast? Oder hast du es nur abgeschrieben? Wenn ja, dann poste den Code mal per Copy & Paste (Kopieren und Einfügen).
Das Öffnen der Datei (fopen()) kannst du dir komplett sparen, da du ja eh nichts mit der Datei machst.
-
AJ schrieb:
@surfman.
Bitte keinen Mischmasch. Entweder printf(), scanf(), ... oder cout und cin.sorry, aber dann ändere bitte das in code obn...cu
-
@AJ:
Heißt das, wenn ich das & vor text weglasse könnte er sogar "Hallo das bin ich, der Text" annehmen???
Wegen dem Beispiel mit gets() :
Sorry meinte eigentlich, das er dann diesen String in eine Datei schreibt...
Aber es geht mit gets() trotzdem nicht...
-
fliege schrieb:
@AJ:
Heißt das, wenn ich das & vor text weglasse könnte er sogar "Hallo das bin ich, der Text" annehmen???
Wegen dem Beispiel mit gets() :
Sorry meinte eigentlich, das er dann diesen String in eine Datei schreibt...
Aber es geht mit gets() trotzdem nicht...probier das mal so:
#include <stdio.h> #include <stdlib.h> void main() { char text[9999]; FILE *f1; printf("Bitte geben sie einen Text ein: "); gets(text); printf("Sie haben \"%s\" eingegeben...", text); // Datei zum schreiben öffnen, wird mit at angehängt an dem was in der Datei steht f1 = fopen("test.txt", "at"); // in Datei schreiben fprintf(f1,"\n%s", text); // Datei schließen fclose(f1); printf("\n\nString wurde erfolgreich in Textdatei gespeichert!"); }
su kannst solange zeichen eingeben bis du enter drückst!! ich hoffe das reicht dir!???
cu surfman
-
@surfman.
Fehlerprüfung nicht vergessen! Es kann auch sein, dass die Datei nicht geöffnet bzw. erstellt werden konnte.Das \n würde ich übrigens erst nach dem Text ausgeben, aber das kommt auf die Verwendung und dem eigenen Geschmack drauf an. Ich fänds hald komisch, wenn ich mir dann die Datei im z. B. Notepad anschaue und dann als allererstes eine Leerzeile ist.
Ansonsten passt alles. Wobei man vielleicht noch erwähnen sollte, dass man gets() eher nicht verwenden sollte, da es einen Bufferoverflow nicht abfängt. Besser verwendet man fgets() mit stdin (= "normalerweise" Tastatur).
-
Pfa! Danke!
Kannst du noch beschreiben, was das "at" bedeutet?
Is das vielleicht etwas anderes als "a" oder "a+"?
Wenn ja dann schreib bitte noch, was diese Angabe macht...
DANKE!
-
fliege schrieb:
Pfa! Danke!
Kannst du noch beschreiben, was das "at" bedeutet?
Is das vielleicht etwas anderes als "a" oder "a+"?
Wenn ja dann schreib bitte noch, was diese Angabe macht...
DANKE!hi schau da bezüglich at usw....:
http://www.cplusplus.com/ref/cstdio/fopen.htmlviel spaß..cu surf.