既然你用了c++以及fsteam来操作,那么字符串也转换成string,然后用<<来操作。
file.write((char*)&book[i],sizeof(book[i]))这句就问题很大。book[i]是什么类型?如果是字符串指针,那么字符串指针的指针自然得不到正确的文本的位置。如果book[i]是string,sizeof也不能得到正确的大小。如果book[i]是字符串指针,sizeof只能得到4,如果book[i]是string,求文本长度也不能用sizeof
你可能是以二进制方式读写的,也可能用了Write和Read函数,这两个函数是二进制的函数,文本文件的读写方式是用ifstream和ofstream两个类
如果你打算存成文本文件,那么要存的数据都要转换成字符串来存才可以。
比如你存一个整数n, 你不能直接写write(&n,4)