Witam :)
Mam pewien problem. Otóż ku mojemu wielkiemu zdziwieniu poniższy kod nie działa jak powinien. Wczytuje 35 z 624 bajtów. Czyli częśc wygenerowanej macierzy. Mogę prosić o pomoc? Kod:
#include <windows.h>
#include <stdio.h>
DWORD INVALID_SET_FILE = 0xFFFFFFFF;
int main()
{
DWORD readed = 0;
HANDLE hFile;// Uchwyt do pliku
int o=0,k=0;
double it=1.1;
double it2=1.1;
double M[13][6];
for(o=0;o<13;o++){
for(k=0;k<6;k++){
M[o][k]= it;
it=it+0.1;
}
it=it-0.6;
it=it+1;
}
for(o=0;o<13;o++){
for(k=0;k<6;k++){
printf("%.2f ", M[o][k]);
}
printf("\n");
}
char nameFile[33] ="C:\\plik1.txt" ;
hFile = CreateFile(
nameFile,
GENERIC_READ|GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL );
if (hFile == INVALID_HANDLE_VALUE) {
printf("CreateFile error %d.\n", GetLastError()) ;
getchar(); return (1); }
BOOL bResult = WriteFile(
hFile,
M,
sizeof(M),
&readed,
NULL) ;
if (!bResult) { printf("WriteFile error %d.\n", GetLastError()) ;
getchar(); return (3); }
if(readed == sizeof(M)) printf("Pelny Zapis zakonczony pomyslnie\n");
else printf("Zapisno %d ze %d bajtow zalozonych\n", readed, sizeof(M));
CloseHandle(hFile);
system("pause");
printf("\n\nZ pliku, funkcjami C++: \n");
double a[13][6];
FILE *pF = fopen(nameFile, "r");
int ile;
while (feof(pF) == 0)
{
ile = fread(a,sizeof(double), (13*6),pF);
}
if(ile==sizeof(M))printf("Pelny Odczyt zakonczony pomyslnie\n");
else printf("Odczytano %d ze %d bajtow zalozonych\n", ile, sizeof(M));
for(o=0;o<13;o++){
for(k=0;k<6;k++)
{
printf("%.2f ", a[o][k]);
}
printf("\n");
}
fclose(pF);
printf("\n");
system("pause");
return 0;
}