如何在 c 中使用 fstream get() 获取 int

新手上路,请多包涵

我是 C++ 的新手,现在我要做的是创建一个文件,并将 int 值写入其中然后我想用 get 函数获取这些 int 值!(这里返回的例外类型是 int )实际上这是一个索引文件,所以我要放入的都是 int 值!但是我发现 fstream.put 和 fstream.get 都只能操作 char 值。那么有没有人愿意帮助我,如何做我的工作。这是我的代码

vector<int> tra1;
vector<int> tra2;
int last_capa = 0;
    for(int i=1;i<97;i++){
        output.put(tra1[i-1] * 5 + tra2[i-1] + last_capa);
        last_capa += (tra1[i-1] - 1) * 5 + tra2[i - 1];
    }

下面是读取int的代码这里我尝试获取一个int数来操作

vector<int> tra4
output.seekg(100);
unsigned int n = output.get() + tra4[2];

谢谢你的帮助

浩然

原文由 Haoran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 878
1 个回答

fstream 运算符 >> 的替代方法是使用读/写。要写入一个 int 值:

 std::ofstream f_out("my_file.txt", std::ofstream::binary);
int n;
f_out.write((char *) & ( n ), sizeof(n));

一个阅读:

 std::ifstream("my_file.txt", std::ifstream::binary);
int n;
f_in.read((char *)&n, sizeof(n));

要读取第 100 个整数:

 std::ifstream("my_file.txt", std::ifstream::binary);
f_in.seekg(100*sizeof(int), std::ios::beg);
int n;
f_in.read((char *)&n, sizeof(n));

原文由 xiawi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题