[转]QNX_IDE使用cin输入变量不能编译通过的解决方法

141 篇文章 22 订阅
106 篇文章 5 订阅

如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意

声明:本文只用于个人学习交流,若不慎造成侵权,请及时联系我,立即予以改正

锋影

email:174176320@qq.com

 

在使用QNX Momentics IDE开发C++代码时,出现如下的错误提示:

根据这个错误描述,只知道是C/C++ Problem,但是具体是什么原因,编译器很吝啬,什么也没有告诉我们,或许它自己都无法清楚的表达。好在从最近一次编译OK的代码到目前为止,改变的代码并不多,逐一排除后发现,是这两行代码导致发生了这样的问题,去掉后一切OK:

int value;
cin >> value;

将int value改为char或string类型后没有编译错误,类似的,输入参数为float,double类型都会出现一样的问题。查询baidu,google和stackflow都没有找到类似的解决方案,或许使用QNX的人本身就太少了。最后没有办法,使用string来绕开这个问题,最后解决方案如下:

string str;
cin >> str;
int value = atoi(str.data());
double = value = atof(str.data());

难道QNX下的C++不支持cin输入int,float,double吗?进入qnxide目录,查看istream的源代码,也有对int,float和double的>>操作符重载(如果没有重载应该编译报错并显示不存在的函数重载才对)。后来在google上看到一篇文章,说可能是target系统的支持问题,因为我的QNX程序最后是部署到QNX系统上运行了,难道是这个原因吗?Oh,MyGod!

项目进度要紧,不去深究它了。

 

今天又出现这样的问题,经过检查,发现是项目引用的lib文件没有生成,导致依赖的lib库文件找不到。还在可以到console控制台中找到错误的原因所在,解决了这个问题。看来发生C++ Problem的问题处理目标平台的关系,还有编译>链接>make之间的原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值