我是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];
感谢您的帮助
孟浩然
答案 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));