所以我正在写一个小作业,它需要从.bin文件中输入内容。因此,我还写了一个小算法,可以将.txt转换为.bin(根据分配只有数字)。问题是,该功能正在起作用。由于某种原因,在第12个数字上添加了一个额外的字节。不知道为什么。另外,很明显,该功能无法读取数字。
问题是,为什么以及如何解决?
算法本身:
ifstream txtIn;
txtIn.open("input.txt");
if (!txtIn.is_open()) {
cout << "Ошибка чтения входного .txt файла!\n";
return;
}
ofstream binOut;
long buf;
binOut.open("input.bin");
binOut.clear();
do {
txtIn >> buf;
binOut.write((char*)&buf, sizeof(long));
} while (!txtIn.eof());
txtIn.close();
binOut.close();
cout << "Конверсия завершена\n";
Input.txt:
6 6
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36
Input.bin:
06 00 00 00 06 00 00 00 01 00 00 00 02 00 00 00
03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00
07 00 00 00 08 00 00 00 09 00 00 00>0D<0A 00 00
00 0B 00 00 00 0C 00 00 00 0D 00 00 00 0E 00 00
//and so on//
此外,任何过时的和/或过时的解决方案都是分配的一部分。不幸的是。