C++ 使用ofstream将多个数组指针写入文件?

C++ 使用ofstream将多个数组指针写入文件?,c++,iostream,ifstream,ofstream,C++,Iostream,Ifstream,Ofstream,我在将多个数据数组写入文件时遇到了一些非常奇怪的问题。基本上,我希望将所有数组大小存储在文件的顶部,然后存储后面的数组数据。这样我就可以读取大小并使用它来构造数组来保存导入时的数据,这样我就可以准确地知道每个数组的开始和结束位置 问题是:我写数据,但导入时不同。请看一下我的小测试代码。在底部有关于值的注释 非常感谢,程序员们!:) #包括 #包括 int main() { int jcount=100,//文件中的第一项 kcount=200, 在_jcount中,//file.jcount中的

我在将多个数据数组写入文件时遇到了一些非常奇怪的问题。基本上,我希望将所有数组大小存储在文件的顶部,然后存储后面的数组数据。这样我就可以读取大小并使用它来构造数组来保存导入时的数据,这样我就可以准确地知道每个数组的开始和结束位置

问题是:我写数据,但导入时不同。请看一下我的小测试代码。在底部有关于值的注释

非常感谢,程序员们!:)

#包括
#包括
int main()
{
int jcount=100,//文件中的第一项
kcount=200,
在_jcount中,//file.jcount中的第三项用于查找此项的结束位置。
in_kcount;
float*j=新的float[jcount],
*k=新浮点数[kcount],
*在日本,
*英国;
对于(int i=0;i
这段代码没有明显的错误(事实上,我没有看到您在尝试运行它时遇到的错误),只是您没有检查打开输入/输出文件时是否有错误


例如,如果您没有写入“test.dat”的权限,则打开操作将自动失败,您将读回以前文件中出现的任何错误。

我也有相同的错误,我使用二进制文件修复它:

ofstream outfile;
outfile.open ("test.dat", ios::out | ios::binary);


你是说它能在你的电脑上完美运行?你得到的数据数组和它应该出来的一样?这很奇怪。我刚刚重新启动了我的电脑,代码正在完美地执行,这是应该的。抱歉打扰了:x不安全代码确实不安全。是的,没错。我已经在OSX和Linux上用g++运行了这个程序,它得到的值与写出来的值完全相同。So:检查打开输出文件的错误;检查文件上的修改日期,以验证您是否真的在写入文件;转储文件内容(在Linux上使用类似于
od-f
的工具)以查看已写入的内容。出于某种原因,我再次遇到此问题,尽管多次重新启动并测试了有效的文件读取/写入。这个问题还没有答案……:(这并不是回答你的问题,但我只是想指出,如果你用
new[]
初始化一个对象,你应该用
delete[]
来销毁它。还有一个简单的问题:你有没有看一下
test.dat
,看看它是否正确地写出了所有数组?
ofstream outfile;
outfile.open ("test.dat", ios::out | ios::binary);
ifstream in;
in.open ("test.dat", ios::in | ios::binary);