PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeichenkette in Datei speichern



sven1978
03-02-2003, 22:07
Ich will eine zeichenkette in eine Datei speicher und habe mir das so gedacht:
Beendet wird die eingabe mit dem '!'.
Ist das so ok oder entspricht das nicht dem standart?
Weil in meinem Buch benutzen sie dafuer fgets aber das soll man ja nicht.Weil es den string ueberschreibt.



void datei_bearbeiten(char *dateiname) {
FILE *datei_zeiger;
char zeile[82];
fflush(stdin);
datei_zeiger=fopen(dateiname,"a");



while(zeile[0]!= '!') {

fgets(zeile,81,stdin);
fprintf(datei_zeiger,"%s\n",zeile);
}

}


Edit : Bitte, bitte CODE-Tags benutzen.

ReSeT
04-02-2003, 09:55
Hi!

Ich würde das so lösen:



#include <stdio.h>
#include <stdlib.h>

#define MAXLINES 1000

int main()
{
FILE *fd;
int count = 0;
int line = 0;
int i;
char c;
char buffer[256];
char *lines[MAXLINES];
char *filename = "test.txt";

while ((c = fgetc(stdin)) != EOF) {
buffer[count++] = c;
if (c == '\n') {
buffer[count++] = '\0';
if ((lines[line] = malloc(strlen(buffer)+1)) == NULL) {
fprintf(stderr, ": memory allocation failed.\n");
exit(-1);
}
strncpy(lines[line],buffer,strlen(buffer)+1);
count = 0;
line++;
}
}

if ((fd = fopen(filename,"w")) == NULL) {
fprintf(stderr,"error opening %s\n",filename);
exit(-1);
}

for (i = 0;i < line;i++)
fprintf(fd,"%s",lines[i]);

fclose(fd);

return 0;
}


GreetZ

ReSeT