英文:
echo \x6e in shell, but called from c++, using variable
问题
我试图使用变量输出一个十六进制值。以下是一个没有变量的示例。
system("echo '\x6e'");
//输出:
//n
完美。
但这个不起作用:
for (int i=1; i<7; i++) {
system(("echo '\x" + to_string(i) + "e'").c_str());
}
// 这甚至不能编译。
// 编译器:
// 错误:\x没有后面的十六进制数字
如果你实际运行代码,就会有十六进制数字。我尝试\\\x,但它只会打印\\\x1e等。
英文:
I am trying to output a hex value using a variable for the number. Here is an example of it with no var.
system("echo '\x6e'");
//output:
//n
Perfect.
But this doesn't work:
for (int i=1; i<7; i++) {
system(("echo '\x"+to_string(i)+"e'").c_str());
}
//Which does not even compile.
//compiler:
//error: \x used with no following hex digits
Well if you actually let the code run there would BE hex digits. I try \\x but then it just literally prints \x1e etc.
答案1
得分: 1
这条注释解释了问题。可能的解决方案:
system("echo '\"s + static_cast<char>(i * 16 + 0xe) + \"'\"");
英文:
The comment explains the issue. Possible solution
system(("echo '"s + static_cast<char>(i * 16 + 0xe) + "'").c_str());
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论