gpt4 book ai didi

c++ - 将 char 添加到 temporaryChar 输出垃圾

转载 作者:行者123 更新时间:2023-11-28 00:30:18 25 4
gpt4 key购买 nike

我正在执行一种方法,在该方法中我加载一个带有随机数据的记事本文件,并且我必须逐个字符地读取。然后我检查这个字符是数字还是字母等等。

我发明了一个名为 isDigit (ch) 的方法,它接受正在加载的字符并检查它是否在 0 和 9 之间。如果它是一个数字,它被添加到一个新创建的 char tempString.

问题 是,每当我添加到此 char tempString 时,第一个数字正常,但其余数字(在我的虚拟文件中,我有 1 - 5)它作为垃圾出来。

请问是什么原因?下面是代码和输出


编码

Token Lexer::getNextToken()
{
char ch;
char tempString;

std::ifstream input("dummyData.txt");

while (input)
{
input.get(ch);

if(isDigit(ch))
{
tempString += ch;
cout << tempString << endl;
Col++;
}
else if (ch == '\n')
{
cout << "\nNew Line\n" << endl;
Row++;
Col = 1;
}
else
{
cout << "Error" << endl;
}

Offset ++;

cout << " Row " << Row << " Column " << Col << " Offset: " << Offset << endl;
}

return Token::tkDigit;
}

Garbage Data

最佳答案

您将 tempString 声明为单个字符,而不是字符串。向它添加一个字符不会将它变成一个字符串并附加该字符;它将 ch 的 ASCII 值添加到 tempString 中已有的值,生成一些其他字符值。

试试 std::string tempString;

关于c++ - 将 char 添加到 temporaryChar 输出垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23219008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com