Witam. Mam taki problem, że chciałbym zapisać tablice double do pliku , a następnie ją odczytać. Czy mógłby mi ktoś pomóc i wskazać błędy w tym kodzie ? Wygląda na to, że do pliku zapisywany jest tylko pierwszy element :(
#include <windows.h>
#include <cstdlib>
#include <cstdio>
#include <iostream>
using namespace std;
#define BYTEStoREAD 10
DWORD INVALID_SET_FILE = 0xFFFFFFFF;
int main() // Plik1
{
DWORD OFFSET = 0, readed = 0;
HANDLE hFile; // Uchwyt do pliku
double Wy[BYTEStoREAD];
double string[BYTEStoREAD]; // bufor Wy
for (int i=0;i<BYTEStoREAD;i++) string[i]=(double)(i+1)/ (double) (BYTEStoREAD+1);
char nameFile[33];
for (int i=0;i<BYTEStoREAD;i++) printf("%f ", string[i]);
cout << "\nPodaj nazwe pliku" << endl << endl;
cin >> nameFile;
hFile = CreateFile( // ------------utworzenie pliku do odczytu
nameFile, // Nazwa pliku
GENERIC_WRITE, // Tylko czytanie z pliku
FILE_SHARE_WRITE, // Wspoldzielenie czytania z pliku
NULL, // Standardowe parametry bezpieczeństwa
CREATE_NEW, // Plik musi istnieć
FILE_ATTRIBUTE_NORMAL, // Nie ma specyficznych atrybutów
NULL ); // Nie korzystamy z obiektu template
if (hFile == INVALID_HANDLE_VALUE) {
printf("CreateFile error %d.\n", GetLastError()) ;
getchar(); return (1); }
BOOL wResult = WriteFile( // -----------------------zapis do pliku
hFile,
string,
BYTEStoREAD,
&readed,
NULL) ;
if (!wResult) { printf("ReadFile error %d.\n", GetLastError()) ;
getchar(); return (3); }
CloseHandle(hFile);
//************************************************************************************ TWORZENIE
hFile = CreateFile( // ------------utworzenie pliku do odczytu
nameFile, // Nazwa pliku
GENERIC_READ, // Tylko czytanie z pliku
FILE_SHARE_READ, // Wspoldzielenie czytania z pliku
NULL, // Standardowe parametry bezpieczeństwa
OPEN_EXISTING, // Plik musi istnieć
FILE_ATTRIBUTE_NORMAL, // Nie ma specyficznych atrybutów
NULL ); // Nie korzystamy z obiektu template
if (hFile == INVALID_HANDLE_VALUE)
{
printf("CreateFile error %d.\n", GetLastError()) ;
getchar(); return (1);
}
getchar();
BOOL bResult = ReadFile( // -----------------------odczyt z pliku
hFile, // Uchwyt pliku
Wy, // Tablica Wyjsciowa
BYTEStoREAD, // Liczba bajtów do wczytania
&readed, // pointer na liczbe wczytanych bajtów
NULL) ; // Operacja synchroniczna
if (!bResult) { printf("ReadFile error %d.\n", GetLastError()) ;
getchar(); return (3); }
if(readed == BYTEStoREAD) printf("Pelny Odczyt zakonczony pomyslnie\n");
else printf("?? Wczytano %d ze %d bajtow zalozonych\n", readed, BYTEStoREAD);
for (int i=0;i<BYTEStoREAD;i++) printf("%f ", Wy[i]);
CloseHandle(hFile);
getchar();
return 0;
}