将单个字符QString转换为Char

时间:2014-11-06 18:03:11

标签: c++ qt char qstring

我在做考试修订时有点被旧任务困住了。我从控制台读取4个值,但是在一行中。他们是GPS坐标,例如输入可以是25 46 3 S。我使用以下代码来读取值:

cout << "Latitude: ";
latitudeLine = cin.readLine();

QStringList args = latitudeLine.split(" ");
degrees = args[0].toInt();
minutes = args[1].toInt();
seconds = args[2].toInt();
cardinalDirection = args[3];

latitudeLine是一个QString。度,分和秒是整数,cardinalDirection是char。我不能改变这些,因为他们在问题的UML图中给了我。一切都很好,除了在最后一行我将QString分配给一个不起作用的char变量。我已经浏览了网络,我发现的所有内容都是将长QString转换为char *,但这给了我一个错误,说我需要一个char而不是char *。这将始终是一个单个字符,是否有任何简单的方法将QString强制转换为char?

提前致谢!

1 个答案:

答案 0 :(得分:3)

为什么不使用这样的索引运算符:args[3][0].toAscii()? 索引运算符将返回位置0的QCharQChar::toAscii将返回char内的QChar

注意:不要忘记检查args[3]是否为空,否则索引操作符将使应用程序崩溃。

修改 正如@hyde所述,请使用QString::toLatin1代替QString::toAscii