从文本文件中读取顺序部分
Reading of sequential parts from a text file
int fread(char cc[],int a[],int q)
{
ifstream infile;
infile.open("C:\Dev-Cpp\DCS\Decom\a.txt",ios::binary);
infile.read(cc,257);
infile.close();
for(int i=0;i<256;i++){a[i]=(unsigned char)cc[i];}
return 0;
}
现在q从线程计数器中获取值,这就是我想做的,
如果 q 为 0,则读取前 256 个字符,并且如果 q 为 1,则读取从位置 256 到 512 的字符,依此类推
这是一种正确的方法,cc 和 a 有一个大小为 256 的数组,还是有更有效的方法
? int fread(char cc[],int a[],int q)
{
int ka=0,kb=0;
kb=q*256;
ka=ka+256;
ifstream infile;
infile.open("C:\Dev-Cpp\DCS\Decom\a.txt",ios::binary);
infile.seekg(256);
infile.read(cc,ka);
infile.close();
for(int i=0;i<256;i++){a[i]=(unsigned char)cc[i];}
return 0;
}
我在 s949.exe 中的 0xb9fb2475 中收到未处理的异常:0xC0000005:当我在 vc++ 2010 中调试它时,访问冲突读取位置0xb9fb2475。
您的第二个版本fread
已接近。以下是我发现的一些问题。
1.标题fread
。 这是一个常见的 C 和 C++ 库函数。 当调用fread
时,可能会出现问题(他们将使用哪个版本?
2. 传递数组时,还应传递数组的容量。
3. 将数组作为源传递时,将它们声明为 const
。
4. 将数组作为目标/目的地传递时,通过引用传递。
5.不要使用数组,std::vector
更安全。
6. 定位输入文件时,请使用您的值而不是常量 256。
7. 在确定位置时包括记录的大小。 如果要读取整数,请乘以 sizeof(int)
。
8. 当可以直接读入客户端缓冲区时,为什么要读入本地缓冲区然后复制到客户端缓冲区?
9. 复制数据时首选库例程,例如 std::copy。
相关文章:
- 独立读取-修改-写入顺序
- C++编译器是否优化了顺序静态变量读取?
- 内存排序或读取-修改-写入操作,仅(读/写)内存顺序
- 如何在 C++ 中将从文本文件中读取的元素推送和弹出到数组中,并按 Revserse 顺序输出堆栈?
- 如何从OpenCV中的目录中按顺序读取文件并使用它进行处理?
- 从文件中读取并按字母顺序排序
- 使用相同的文件对象按顺序写入和读取文件
- 如何以相反的顺序读取C++程序的输入
- 插座读取和写作未按顺序进行
- C++按顺序读取多个输入文件
- 从管道中按顺序读取OpenEXR
- 如何保存字符串并按顺序读取/写入它们
- 浏览字符串并将部分行读取到类字段中
- 一次从文件中读取多行而不读取部分行的方法
- 如何从OpenCV中的目录中按顺序读取文件
- 在数组中使用常量字符 * 来读取顺序文件
- 为什么我的ifstream程序以错误的顺序读取单词
- 如何使用C++以相反的顺序读取文件
- 忽略C++中的字节顺序标记,从流中读取
- c++中顺序插入/读取/删除最快的数据结构是什么?