Hey ... vì vậy bạn muốn làm điều đó trong một lần đọc/đọc, cũng không quá khó, mã sau đây sẽ hoạt động tốt, có thể cần kiểm tra thêm lỗi nhưng trường hợp dùng thử đã thành công:
#include <string>
#include <fstream>
#include <iostream>
bool saveArray(const double* pdata, size_t length, const std::string& file_path)
{
std::ofstream os(file_path.c_str(), std::ios::binary | std::ios::out);
if (!os.is_open())
return false;
os.write(reinterpret_cast<const char*>(pdata), std::streamsize(length*sizeof(double)));
os.close();
return true;
}
bool loadArray(double* pdata, size_t length, const std::string& file_path)
{
std::ifstream is(file_path.c_str(), std::ios::binary | std::ios::in);
if (!is.is_open())
return false;
is.read(reinterpret_cast<char*>(pdata), std::streamsize(length*sizeof(double)));
is.close();
return true;
}
int main()
{
double* pDbl = new double[1000];
int i;
for (i=0 ; i<1000 ; i++)
pDbl[i] = double(rand());
saveArray(pDbl,1000,"test.txt");
double* pDblFromFile = new double[1000];
loadArray(pDblFromFile, 1000, "test.txt");
for (i=0 ; i<1000 ; i++)
{
if (pDbl[i] != pDblFromFile[i])
{
std::cout << "error, loaded data not the same!\n";
break;
}
}
if (i==1000)
std::cout << "success!\n";
delete [] pDbl;
delete [] pDblFromFile;
return 0;
}
Chỉ cần đảm bảo bạn phân bổ bộ đệm phù hợp! Nhưng đó là một chủ đề toàn diện.
Ý của bạn là, để xuất ra một tệp? –
Vào ổ cứng? Hãy cụ thể. Để một tập tin văn bản? Ở định dạng nào? 1 trên mỗi dòng? ... –