C++ 如何在c+中使用fstream从文件中读取十六进制值+;?

C++ 如何在c+中使用fstream从文件中读取十六进制值+;?,c++,fstream,C++,Fstream,正如标题所述,如何使用fstream读取十六进制值 我有以下代码:(假设文件中有“FF”) 有人能帮我吗?我是否必须用空格分隔要读取的每个十六进制值? 因为infle>>hex>>setw(1)不起作用。阅读时必须链接std::hex,链接方式与写作时相同: infile >> std::hex >> a; 可以使用十六进制修改器 int n; cin >> hex >> n; 这项工作: int main() { const char

正如标题所述,如何使用
fstream
读取十六进制值

我有以下代码:(假设文件中有“FF”)

有人能帮我吗?我是否必须用空格分隔要读取的每个十六进制值?
因为
infle>>hex>>setw(1)
不起作用。

阅读时必须链接
std::hex
,链接方式与写作时相同:

infile >> std::hex >> a;

可以使用十六进制修改器

int n;
cin >> hex >> n;
这项工作:

int main()
{
    const char *filename = "blah.txt";
    ifstream infile(filename, fstream::in);

    unsigned int a;
    infile >> hex >> a;
    cout << hex << a;
}
intmain()
{
const char*filename=“blah.txt”;
ifstream-infle(文件名,fstream::in);
无符号整数a;
填充>>十六进制>>a;

cout还要确保输入文件是使用十六进制编辑器而不是常规文本编辑器编写的。
否则,包含字符“a”的文件foo.txt将被读取为0x61,并以0x61而不是0xa打印。linux的一个不错的十六进制编辑器是“Bless”。

感谢您的回答!我已经尝试过了,但它也不起作用:(@ardiyu:确实有效。在单独的行上使用std::hex也有效,就像你一样。你的错误在别处。@etarion@Nekresh你们说得对!但我还有一个问题,请查看更新并帮助我:| std::hex和hex是一样的:)这与十六进制值无关。您的错误在其他地方。在要求在此之前,请在谷歌上搜索。我相信您会找到这个琐碎问题的答案question@gcc我在谷歌上搜索过,但对我的情况不起作用。@etarion你是对的,但我还有另一个问题,请帮助我:|@gcc:有时很难用在“文本框”处。因此,最好在这里询问。此外,您可能会得到断开的链接或不正确的信息。此网站由活动社区备份。因此,即使可以使用Google找到相同的答案,这里的答案也更有价值。@gcc:不需要;析构函数会隐式地执行此操作。虽然此链接可能会回答此问题,但它是我的It’最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。-我的观点是使用十六进制编辑器-无论是哪一个。因此,链接在我的答案中是可选的。这只是一个建议。我理解你的观点。谢谢。
int n;
cin >> hex >> n;
int main()
{
    const char *filename = "blah.txt";
    ifstream infile(filename, fstream::in);

    unsigned int a;
    infile >> hex >> a;
    cout << hex << a;
}