Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在理解C+之后存在问题+;代码。(见附件) #包括 #包括 课堂测试 { 字符名[10]; int数据; 公众: void getData() { cin>>名称; cin>>数据; } 无效显示() { 库特达; } }; int main() { 试验t1、t2、t3、t4; //删除(“FileIO.dat”); t1.getData(); t2.getData(); t3.getData(); t4.getData(); fstream fp1(“FileIO.dat”,ios::out | ios::app); fp1.写入((char*)&t1,sizeof(t1)); fp1.写入((char*)&t2,sizeof(t2)); fp1.写入((char*)&t3,sizeof(t3)); fp1.写入((字符*)和t4,大小为(t4)); fp1.close(); fstream fp2(“FileIO.dat”,ios::in | ios::out); fp2.read((char*)&t1,sizeof(t1)); fp2.read((char*)&t2,sizeof(t2)); int pos=-1*sizeof(t2);//*******不理解此行 cout_C++_File Handling - Fatal编程技术网

C++ 在理解C+之后存在问题+;代码。(见附件) #包括 #包括 课堂测试 { 字符名[10]; int数据; 公众: void getData() { cin>>名称; cin>>数据; } 无效显示() { 库特达; } }; int main() { 试验t1、t2、t3、t4; //删除(“FileIO.dat”); t1.getData(); t2.getData(); t3.getData(); t4.getData(); fstream fp1(“FileIO.dat”,ios::out | ios::app); fp1.写入((char*)&t1,sizeof(t1)); fp1.写入((char*)&t2,sizeof(t2)); fp1.写入((char*)&t3,sizeof(t3)); fp1.写入((字符*)和t4,大小为(t4)); fp1.close(); fstream fp2(“FileIO.dat”,ios::in | ios::out); fp2.read((char*)&t1,sizeof(t1)); fp2.read((char*)&t2,sizeof(t2)); int pos=-1*sizeof(t2);//*******不理解此行 cout

C++ 在理解C+之后存在问题+;代码。(见附件) #包括 #包括 课堂测试 { 字符名[10]; int数据; 公众: void getData() { cin>>名称; cin>>数据; } 无效显示() { 库特达; } }; int main() { 试验t1、t2、t3、t4; //删除(“FileIO.dat”); t1.getData(); t2.getData(); t3.getData(); t4.getData(); fstream fp1(“FileIO.dat”,ios::out | ios::app); fp1.写入((char*)&t1,sizeof(t1)); fp1.写入((char*)&t2,sizeof(t2)); fp1.写入((char*)&t3,sizeof(t3)); fp1.写入((字符*)和t4,大小为(t4)); fp1.close(); fstream fp2(“FileIO.dat”,ios::in | ios::out); fp2.read((char*)&t1,sizeof(t1)); fp2.read((char*)&t2,sizeof(t2)); int pos=-1*sizeof(t2);//*******不理解此行 cout,c++,file-handling,C++,File Handling,这是因为您的程序正在从t1读取数据,从t2读取数据,修改t2,然后写入t2的内容 首次打开fp2时,文件如下所示(^表示文件指针的当前位置): 读取t1和t2后,指针现在将指向t3的开头: +-----------+-----------+-----------+-----------+ | t1 data | t2 data | t3 data | t4 data | +-----------+-----------+-----------+-----------+ ^ |

这是因为您的程序正在从t1读取数据,从t2读取数据,修改t2,然后写入t2的内容

首次打开fp2时,文件如下所示(
^
表示文件指针的当前位置):

读取t1和t2后,指针现在将指向t3的开头:

+-----------+-----------+-----------+-----------+
|  t1 data  |  t2 data  |  t3 data  |  t4 data  |
+-----------+-----------+-----------+-----------+
^
|
现在,为了写入t2的数据,我们需要将文件指针移回t2的开始处。这有多远?
-1*sizeof(t2)


现在您可以覆盖t2的数据。

非常感谢您让我说清楚。清楚地理解了这个概念…:-)@ankur.trapasiya,ASCII艺术是解决世界上所有问题的方法:)
+-----------+-----------+-----------+-----------+
|  t1 data  |  t2 data  |  t3 data  |  t4 data  |
+-----------+-----------+-----------+-----------+
^
|
+-----------+-----------+-----------+-----------+
|  t1 data  |  t2 data  |  t3 data  |  t4 data  |
+-----------+-----------+-----------+-----------+
                        ^
                        |
+-----------+-----------+-----------+-----------+
|  t1 data  |  t2 data  |  t3 data  |  t4 data  |
+-----------+-----------+-----------+-----------+
                        ^
                        |
            <-----------+
                  |
                  This distance == sizeof(t2)
+-----------+-----------+-----------+-----------+
|  t1 data  |  t2 data  |  t3 data  |  t4 data  |
+-----------+-----------+-----------+-----------+
            ^
            |