这是一个简单的问题,我希望可以轻松回答,文件流读写操作是否可以移动指针?举个例子:
cpos=10000;
for (i=0;i<20;i++) {
dataFile.seekg(cpos+i,ios::beg);
dataFile.read(carray[i],1);
}
Run Code Online (Sandbox Code Playgroud)
它(逻辑上)是否相同:
dataFile.seekg(cpos,ios::beg);
cpos=10000;
for (i=0;i<20;i++) {
dataFile.read(carray[i],1);
}
Run Code Online (Sandbox Code Playgroud)
换句话说,无论使用哪种方法,carray []都包含相同的内容(我看不出第一种方法是有效的,所以我希望正确的答案是肯定的).如果是这样,写操作表现出相同的行为吗?
是的,这就是它的工作方式.但是,你的例子并不完全相同.您的第一个示例从10000,然后是10001,然后是10002等读取.第二个示例需要在循环外部进行搜索以设置初始位置.为了100%等效,你需要让你的第二个例子看起来像:
cpos=10000;
dataFile.seekg(cpos,ios::beg);
for (i=0;i<20;i++) {
dataFile.read(carray[i],1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5883 次 |
| 最近记录: |