【发布时间】:2013-12-06 01:28:21
【问题描述】:
我对一个奇怪的问题感到困惑。当我制作如下内容时:
FILE* fl;
int* d = new int[3];
d[0] = -3;
d[1] = -3;
d[2] = -3;
plik = fopen("E:\data.txt","r+b");
fwrite((char*)d, sizeof(int), sizeof(int)*3, fl);
fclose(fl);
system("pause");
它将一些数据正确写入文件,我可以在记事本中清理并获得 0B 文件大小。但是,如果我将 -3 更改为 -2:
FILE* fl;
int* d = new int[3];
d[0] = -2;
d[1] = -2;
d[2] = -2;
plik = fopen("E:\data.txt","r+b");
fwrite((char*)d, sizeof(int), sizeof(int)*3,fl);
fclose(fl);
system("pause");
结果是,当我在记事本中清理数据并保存文件时,它总是2B,并且无法清理到最后。问题是什么?。提前致谢。
【问题讨论】:
-
注意
fwrite、fclose等不是 C++,而是 C。相应地编辑了您的问题。 -
将路径更改为
"E:\\data.txt"。否则,您可能无法打开正确的文件进行写入。 -
@Qntm
new[]运算符是 C++,而不是 C。