gpt4 book ai didi

c++ - 如何在同一个资源中分离字符串和整数变量

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

我很难将变量 String 和 Integer 分开以在“if()”语句中传递。我有两个变量 "buffString""buffInteger",当我把 buffString 放在 "if()"语句中时,我想把字符串 "Data Stop"buffString 变量,然后设置到 RichEdit 以显示“数据停止”,但是当 buffInteger 填充与 buffString 相同时的问题出现在过程中。编译器说 "Data Stop" 不是有效的整数值

void __fastcall TfrmServer::ComPort1RxChar(TObject *Sender, int Count)
{
String buff;
ComPort1->ReadStr(buff,255);
BUF_RX->Data_suhu = buff; // source
int bufferInteger;
String bufferString;

try{
if(!buff.IsEmpty())
{
bufferInteger = StrToInt(BUF_RX->Data_suhu);
bufferString = BUF_RX->Data_suhu;
if(bufferString == "Data Stop")
{
ad_log_Serial("AT89S52 -> "+BUF_RX->Data_suhu,clRed);
}
else
{
ad_log_Serial("AT89S52 -> "+IntToStr(bufferInteger),clRed);
txtTemp->Text = IntToStr(bufferInteger).c_str();
}
LedRx->States->Items[0]->Value = true;
}
else
{
LedRx->States->Items[0]->Value = false;
}
}__finally
{
delete(BUF_RX);
}
}

我应该用这段代码做什么?

最佳答案

将您的 bufferInteger 赋值移动到 else 子句:

else
{
bufferInteger = StrToInt(BUF_RX->Data_suhu);
ad_log_Serial("AT89S52 -> "+IntToStr(bufferInteger),clRed);
txtTemp->Text = IntToStr(bufferInteger).c_str();
}

因为它没有在它外面使用,所以把它放在那里是没有意义的。并假设任何不是 "Data Stop" 的字符串都应该表示一个整数,代码不会以这种方式失败。

关于c++ - 如何在同一个资源中分离字符串和整数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14051373/

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