C eingabestream mit leerzeichen in ein char array

ali7566

Lieutenant
Registriert
Feb. 2007
Beiträge
980
Hallo leute,

ich habe gerade ein kleines problem was mich ärger und zwar habe ich ein kleines programm geschrieben was Textdateien einliest und mit das ich auch neue dateien erzeugen kann und dort reinschreiben kann.

Jedoch habe ich jetzt beim reinschreiben ein problem, wenn ich scanf() nehme dann ist ja ab dem '\0' quasi schluss und ein satz wäre nicht möglich, mit gets, fgets habe ich es auch schon probiert, dort ist das programm sofort weiter nachdem ich ein zeichen eingegeben hatte.

Was hättet ihr da für eine Idee :

void einlesen()
{
int b,j, zaehler=0;
char name[30], text[100];
FILE *datei2;

printf("\n\n\n\n");
printf("Sie haben sich dafuer entschieden dateien zu erzeugen \n");
printf("Geben Sie den Dateinamen an:\n");

scanf("%s", name);

datei2= fopen(name,"w");

if(datei2 == NULL)
printf("Das Schreiben ist nicht moeglich \n");

else if(datei2 != NULL){
printf("pruefung der Datei fehlerfrei \n");
printf("Geben Sie den Text ein der gespeichert werden soll: \n");
scanf("%s",text);

fprintf(datei2, text);
}




printf("Datei wird geschrieben........ \n");

fclose(datei2);

}

Wenn ich z.B. "Hallo wie gehts" eingebe wird in die Textdatei logischweiße nur "Hallo" eingegeben und schluss, mit einer schleife hab ich es auch schon probiert, aber bin zu keinem passablen ergebnis gekommen.

Gruß Ali.
 
mal ein anderes Thema zu dem selben Programm, ich soll mit fputc() in eine Textdatei zeichenweiße schreiben.

nun hab ich folgenden codeabschnitt dafür
while((b=fgetc(stdin) != EOF)) // mit stdin möchte ich die Eingabe von der Tastatur einzulesen.
fputc(b,datei2); // datei2 ist ein Zeiger auf FILE

Ich möchte nun in eine Textdatei speichern und zwar unter den oben geannten kriterien, wenn ich nun an den Punkt gelange an dem ich eine Eingabe mache wird mit Enter nicht beendet, sei es das ich in der While Bedingung EOF, NULL, '\n' oder '\r' reinschreibe.

Wo ist da mein Fehler ?
 
Zuletzt bearbeitet:
Zurück
Oben