我需要将此字符显示为数字,但我会继续获得笑脸,心形和其他ASCII符号。这部分是我认为问题所在:
s = prefix + ch + '.';
这是整个代码:
int main()
{
int levels = 2;
string prefix = "Recursion:";
sections(prefix, levels);
system("pause");
return 0;
}
void sections(string prefix, int levels)
{
if (levels == 0)
{
cout << prefix << endl;
}
else
{
for (char ch = 1; ch <= 9; ch++)
{
string s;
s = prefix + ch + '.';
sections(s, levels - 1);
}
}
}
答案 0 :(得分:2)
您正在为字符而不是字符使用int值,因此您将获得在字符集中包含这些代码的任何字符。使用'
围绕一个字符来获取特定字符的字符代码:
for (char ch = '1'; ch <= '9'; ch++)
sections(prefix + ch + '.', levels - 1);
请注意,这取决于字符集(实现定义)中所有连续的数字字符和升序,但对于我能想到的每个字符集都是如此...
答案 1 :(得分:0)
您应该使用std::to_string
函数将数字转换为字符串。
答案 2 :(得分:0)
问题是你的for-loop
char ch = 1 //is not a 1
char ch = '1' //instead is (but i'm not sure if you can increment this)
char ch = 49 // is also a 1
希望有所帮助。