Ĺadny brzuch
#include<stdio.h>
int main()
{
FILE *stream,*stream2;
char tab[64];
stream=fopen("xxx.txt","r");
if(stream!=NULL)
{
fread(tab,sizeof(char),64,stream);
fclose(stream);
}
else
printf("nie mozna odczytac pliku xxx.txt");
stream2=fopen("xxx2.txt","w");
if(stream2!=NULL)
{
fwrite(tab,sizeof(char),64,stream2);
fclose(stream2);
}
else printf("blad");
return 0;
}
Nie wiem czemu gdy chce otworzyć plik xxx2.txt to pojawia sie blad z kodowaniem a jak otwieram to w vim'ie to sie otwiera ale na polach ktore byly jeszcze w tablicy czyli w sumie tych 64 pojawiają sie dziwne krzaczki :/
kompilator: gcc
nie odpalalem programu, ale..
z tego co widze to pobierasz 64 znaki, a powienes w tym przypadku 63, poniewaz ostatni bajt powienien byc zarezerwowany dla znaku 0, czyli konca lancucha znakow
mysle ze jak dasz "char tab[65]" to nic wiecej nie bedziesz musial zmieniac..
ale sprawdz
Użytkownik fernandez edytował ten post 08 styczeń 2008, 00:46
ale chodzi właśnie o to że tam jest chyba za dużo znaków i zapodaje śmiecu, no i nie wiem czy to może być przyczyną tego kodowania błędnego
u mnie to działa, kopiuje 63 znaki...
Użytkownik Atal edytował ten post 08 styczeń 2008, 00:46
a co ciekawe u mnie kopiuje dobrze, bez zadnych modyfikacji..
ale 64 znaki o_O
znak 0 akurat do czego innego sluzy, w tym przypadku chyba ne jest potrzebny ;)
zczytujesz dokladnie takie dane jakie zapisujesz..
kompiluje gcc (MinGW)
Użytkownik fernandez edytował ten post 08 styczeń 2008, 01:01
1. Kodowanie: Na windowsie musisz jeszcze podać typ odczytu: binarny ("b") lub tekstowy ("t"), domyślnie jest binarny.
fopen( strFile, "tw" );
2. Do zczytywania tekstu lepiej się posłużyć funkcja fgets - bierze całą linię tekstu.
Inczej musisz pobrać rozmiar (fseek, ftell)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Nie wiem czemu gdy chce otworzyć plik xxx2.txt to pojawia sie blad z kodowaniem a jak otwieram to w vim'ie to sie otwiera ale na polach ktore byly jeszcze w tablicy czyli w sumie tych 64 pojawiają sie dziwne krzaczki :/
kompilator: gcc
nie odpalalem programu, ale..
z tego co widze to pobierasz 64 znaki, a powienes w tym przypadku 63, poniewaz ostatni bajt powienien byc zarezerwowany dla znaku 0, czyli konca lancucha znakow
mysle ze jak dasz "char tab[65]" to nic wiecej nie bedziesz musial zmieniac..
ale sprawdz
Użytkownik fernandez edytował ten post 08 styczeń 2008, 00:46
ale chodzi właśnie o to że tam jest chyba za dużo znaków i zapodaje śmiecu, no i nie wiem czy to może być przyczyną tego kodowania błędnego
u mnie to działa, kopiuje 63 znaki...
Użytkownik Atal edytował ten post 08 styczeń 2008, 00:46
a co ciekawe u mnie kopiuje dobrze, bez zadnych modyfikacji..
ale 64 znaki o_O
znak 0 akurat do czego innego sluzy, w tym przypadku chyba ne jest potrzebny ;)
zczytujesz dokladnie takie dane jakie zapisujesz..
kompiluje gcc (MinGW)
Użytkownik fernandez edytował ten post 08 styczeń 2008, 01:01
1. Kodowanie: Na windowsie musisz jeszcze podać typ odczytu: binarny ("b") lub tekstowy ("t"), domyślnie jest binarny.
fopen( strFile, "tw" );
2. Do zczytywania tekstu lepiej się posłużyć funkcja fgets - bierze całą linię tekstu.
Inczej musisz pobrać rozmiar (fseek, ftell)