c++ - 为什么我不能用 "\x"初始化字符串

标签 c++ string

为什么我不能用“\x”初始化字符串

string s = "\x"

如果我以后可以写的话会很有用:

int grade = 0;
while (cin >> grade)
    if (grade < 60)
        cout << "Your grade letter is F!";
    else {
        x = 50 - grade/10;
        s = s + static_cast<string>(x);
        cout << "Your grade letter is " << s << endl; 
    }

我更喜欢答案,它使用转义序列计算来设置成绩字母。

最佳答案

因为语法不允许。字符串文字中的 \x 序列是一个前缀,表示“这里是字符的十六进制代码”,但您试图省略代码部分。这意味着无法解析文字并确定将哪个字符放入字符串中。

请注意,这是编译时的事情,它必须能够通过仅查看文字本身来计算由字符串文字表示的字符序列。

关于c++ - 为什么我不能用 "\x"初始化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121236/

相关文章:

java - 我想将 java 中的 .txt 文件中的多个字符串解析为变量。最简单的方法是什么?

c - 字符串操作和 rot-13

jquery - 无法将文本字符串传递到 jquery 函数中?

C++ 负数组索引

python - 使用 >、< 运算符比较字符串时会发生什么? Python

c++ - 显式转换运算符和常量引用限定

c++ - 背包的变体

c - 输入一个字符打印错误,但c中输入0时不打印

c++ - 线程安全对象的包装类是否也需要成为线程安全的?

C++软件传递参数方法