首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将整型转换为字符(不是常量字符),以便与putChar()一起使用;

如何将整型转换为字符(不是常量字符),以便与putChar()一起使用;
EN

Stack Overflow用户
提问于 2016-01-07 05:49:43
回答 4查看 315关注 0票数 1

我正在编写一个QT控制台应用程序,以便使用QSerialport库写出FTDI线缆。( FTDI电缆连接到逻辑分析仪,以便我可以调试输出)

我需要将int x = 255;传递给myserial->putChar();

我尝试使用以下命令将int转换为char:

int x = 255; std::string s = std::to_string(x); char const *myChar = s.c_str(); myserial->putChar(myChar);

并收到错误:

cannot initialize a parameter of type 'char' with an lvalue of type 'const char*'

然而,在这个从char开始的测试中,一切都运行得很完美:

char myChar = 255; myserial->putChar(myChar);

给出了逻辑分析仪上0xFF的正确结果。

有人能帮上忙吗?谢谢!

EN

回答 4

Stack Overflow用户

发布于 2016-01-07 06:18:41

就这么做吧:

代码语言:javascript
运行
复制
int x = 255;
mySerial->putChar(x);

编译器将为您转换参数。除非你有一些你没有提到的额外需求,否则你可以让它变得更简单:

代码语言:javascript
运行
复制
mySerial->putChar(255);
票数 1
EN

Stack Overflow用户

发布于 2016-01-07 05:57:48

这应该是可行的:

代码语言:javascript
运行
复制
unsigned int x = 255;
myserial->putChar( static_cast<char>(x) );
票数 0
EN

Stack Overflow用户

发布于 2016-01-07 06:09:34

s.c_str()的调用将返回一个C字符串。在这种情况下,字符串只包含单个字符,但这与字符变量不同!C字符串是以空字符'\0‘结尾的连续字符序列。您尝试传递给putChar的是指向此数组第一个字符的指针。

正如其他几个帖子所建议的那样,您需要使用一个cast:putChar( static_cast<char>(x) )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34643486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档