Mam program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
FILE *fp;
char tekst[300];
do {
printf("Napisz cos:
");
gets(tekst);
} while (strlen(tekst) == 0);
printf("Tekst: %s
", tekst);
if ((fp=fopen("test.txt", "a+"))==NULL) {
printf ("Nie mogę otworzyć pliku test.txt do zapisu!
");
exit(1);
}
fprintf (fp, "%s
", tekst);
fclose (fp);
return 0;
}
Oraz mam pytanie:
Dlaczego, gdy plik test.txt nie istnieje i wprowadzam ciąg znaków, to zostaje umieszczony on w pierwszej linii pliku, natomiast gdy plik test.txt istnieje, ale jest pusty, ciąg znaków zostaje umieszczony w linii drugiej. Jak sprawić, aby ciąg został zapisany w pierwszej linii?
C: Pisanie do pliku
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
C: Pisanie do pliku
Programik ten wprowadza tekst zawsze na koncu pliku. Jesli go nie ma - tworzy i zapisuje do niego. Sprawdzilem u sibie i dziala dobrze. U ciebie zapisuje w drugiej linijce, bo najprawdopodobniej twoj plik nie jest pusty, tylko ma w srodku 'enter'. Tak wiec wszystko zapisze sie do nowej lini.
Pozdrawiam.
Pozdrawiam.
-
- Użytkownik
- Posty: 103
- Rejestracja: 6 maja 2008, o 19:30
- Płeć: Mężczyzna
- Lokalizacja: zoso
- Podziękował: 12 razy
- Pomógł: 5 razy
C: Pisanie do pliku
Backspacem. Napisałem:
fp=fopen("test.txt", "r");
for (i=0;c==EOF;i++) c=fgetc(fp);
printf("Ilosc znakow: %d
",i);
ale coś nie chce liczyć znaków.
fp=fopen("test.txt", "r");
for (i=0;c==EOF;i++) c=fgetc(fp);
printf("Ilosc znakow: %d
",i);
ale coś nie chce liczyć znaków.
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
C: Pisanie do pliku
Stworz pusty plik poprzez Nowy->Plik tekstowy (bo zakladam, ze z Linuxa nie korzystasz). Zmien tylko jego nazwe i nie otwieraj. Jak uruchomisz program, to powinno dobrze sie wpisac
Pozdrawiam.
Pozdrawiam.