用fstream读取一个ASCII文件
Reading an ASCII file with fstream
有一个ASCII文本文件,其中包含一些整数,每个整数由空格分隔,有时这些数字会转到新行。例如:
// my_file.txt
23 45 973 49
44 1032 33 99
43 8 4 90824
我想读取100个这样的数字到一个"int"数组中。到目前为止,我有以下代码:
int x[100];
fstream file_in("my_file.txt", ios::in);
for (int i = 0; i < 100; i++)
{
file_in >> x[i];
}
然而,我现在想做一些我不确定的事情。
如果我只想读取整个文件,而不需要经过循环,该怎么办?如果这是二进制数据,我知道我可以直接写
file_in.read((char*)&x[0], 100 * sizeof(int))
。但是我如何用ASCII文件做到这一点呢?如果我想跳过文件中的前3个数字,并从第四个开始读取该怎么办?同样,如果这是二进制数据,我可以用
file_in.seekg(3 * sizeof(char))
。但是我不知道如何在ASCII文件中跳过。
没有原始循环!
读取整个文件:
#include <fstream>
#include <iterator>
#include <vector>
int main()
{
std::ifstream f("data.txt");
std::vector<int> v(std::istream_iterator<int>(f), {});
跳过前三个:
v.erase(v.begin(), v.begin() + 3);
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 如何修复艺术ASCII,我点击一个字母就可以了,但输入一个阶段艺术出来了
- 如何将一个数字(大于8个字节)从字符阵列转换为其ASCII表示
- 我怎样才能将像 123 这样的数字变成一个带有 ascii 的字符串C++
- 试图制作一个将十进制转换为二进制和ASCII C++的表
- 如果我有一个固定大小的填充ascii数字的char数组,我知道它指的是一个无符号整数,那么将其转换为无符号整数的最快方法
- 在C++中构建ASCII到二进制的代码,反之亦然,并遇到了一个奇怪的错误
- 将一个对象写入一个对象,该对象带有指向另一个对象的指针,指向 ASCII 文件 (C++)
- 使用哪一个,utf8 或 Ascii
- 从ASCII字符中减去一个数字
- 将 0 和 1 的字符串变成一个整数,变成那个 ascii val 中的一个字符
- 计算一个字符的ascii值之和
- 在c++中指定一个ASCII小写字符范围
- 了解一个字符到ASCII的转换函数
- 在c++中创建并初始化一个静态const char数组作为Ascii查找表
- 我读取了一个char类型的变量,然后打印出ascii代码.为什么如果我按回车键,什么都没有
- 在 c++ 中将一个 ascii 字符的所有实例替换为另一个实例
- 将一个 UNICODE 字符转换为两个 ASCII 字符
- 用fstream读取一个ASCII文件