我正在编写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
的正确结果。
有人可以帮忙吗?谢谢!
答案 0 :(得分:1)
就这样做:
mySerial->putChar(255);
编译器会为您转换参数。除非你有一些额外的要求,你没有提到,你可以使它更简单:
<div class="form-group">
<div class="col-sm-6 col-md-8">
<label for="inputjobDescription" class="control-label lightfont">Description</label>
<div text-angular ng-model="job.Description" name="description" ng-pattern="/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}))\n?)*$/" ng-minlength="100" ta-min-text="100" required>
</div>
<p ng-show="jobform.description.$invalid && !jobform.description.$pristine && !jobform.description.$error.pattern" class="help-block">Can you be a bit more elaborate(atleast 100 characters) , please?<br> Don't write your emailID, telephone number or any URL.</p>
</div>
</div>
答案 1 :(得分:0)
这应该有效:
translate(-50%,-50%)
答案 2 :(得分:0)
您对s.c_str()
的调用会返回一个C字符串。在这种情况下,字符串只包含一个字符,但这与字符变量不同! C字符串是以空字符终止的连续字符序列,&#39; \ 0&#39;。您要传递给putChar
的是指向此数组的第一个字符的指针。
正如其他几张海报所建议的那样,你需要使用一个演员:putChar( static_cast<char>(x) )
。
答案 3 :(得分:0)
您的第一个代码无效,因为std::to_string(255)
会为您提供:std::string("255")
因此,在进行c_str
转换时,您的代码与以下内容相同:myserial->putChar(50);
。< / p>
Naschkatze给出的答案肯定是一种更好的方法。