Why I cannot initialize string with “\x”
string s = "\x"
It would be useful if I could later write:
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;
}
I prefer answer, that uses escape sequences computation for setting grade letter.
Because the syntax forbids it. The
\xsequence in a string literal is a prefix that means “here comes the hexadecimal code for a character”, but you’re trying to omit the code part. That means it’s not possible to parse the literal and figure out which character to put in the string.Note that this is a compile-time thing, it has to be possible to compute the sequence of characters represented by a string literal, by just looking at the literal itself.