这是文件的一个示例:它有两列,第二列是十六进制值
0 298478
0 298478
2 3636
0 70f60874
...
我试图把第一列放在一个向量中,第二列放在另一个向量中,我尝试了多个东西,但它在输入文件的第四行到达'f'后停止或者在访问时给出了奇怪的值向量。
using namespace std;
int main()
{
vector <int> label;
vector <int> address;
ifstream ifile("data.txt");
if (!ifile.is_open())
{
cout << "Error opening file\n";
}
while (!ifile.eof())
{
int a;
long long b;
ifile >> a >> hex >> b;
if (ifile.fail())
{
break;
}
label.push_back(a);
address.push_back(b);
}
cout << label[3] << "\n";
cout << address[3];
}
当我运行这个时,我得到: 0 1895172212
如果我在没有“hex&gt;&gt; b”的情况下运行它,我会得到准确的结果,但它不会超过第4行的'f'。请不要对此感到高兴,我感谢任何帮助
答案 0 :(得分:1)
1895172212实际上是正确的值(将70f60874转换为十进制时),换句话说 - 您将值打印为十进制,如果要将其打印为十六进制值,则还需要使用十六进制作为输出。 / p>