如何将int转换为char(不是const char)以与putChar();

时间:2016-01-06 21:49:43

标签: c++ qt serial-port type-conversion

我正在编写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的正确结果。

有人可以帮忙吗?谢谢!

4 个答案:

答案 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给出的答案肯定是一种更好的方法。