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

时间:2016-04-25 03:14:00

标签: c++ file

我是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];

感谢您的帮助

孟浩然

3 个答案:

答案 0 :(得分:1)

另外,您可以使用fstream的运算符&gt;&gt;而不是get。将文件中的值读入int。

fstream fs("input.txt", std::fstream::in); //input file
int k;
while(fs >> k)
{
   //do something with k
}
fs.close();

答案 1 :(得分:0)

您可以尝试使用古老的C方法sprintf将一些int放入字符串中,然后将字符串放入文件中,如下所示:

sprintf(theNameOfYourString,"%d",n);

编辑:当然,你必须将字符串theNameOfYourString放在你的文件中,sprintf只允许你把东西放在一个字符串中。

答案 2 :(得分:0)

fstream运算符的替代&gt;&gt;是使用读/写。写一个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个int:

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));