2 lxs6714010 lxs6714010 于 2016.03.24 23:42 提问

关于C++字符串流程序在vc6和vs2005下运行不一致问题,求大神给解释!!!
string input;
cin>>input;

int len = 0;
string strtmp;
istringstream strstream(input);
strstream>>len>>strtmp;

以上程序在vc6和vs2005运行不一致,不知道是小弟机器原因还是什么问题,很困惑,同样的程序怎么运行不一样呢,
难道是vc6编译器和vs2005编译器差别???

输入:9,AUStralia
当从字符串流向len和strtmp读的时候,vc6下可以读正确,len为9,strtmp为,AUStralia。
可在vs2005下读入失败,len为初始值0,strtmp为空。

小第百思不得其解,求教大神是什么原因???

3个回答

devmiao
devmiao   Ds   Rxr 2016.03.24 23:54
wangyaninglm
wangyaninglm   Ds   Rxr 2016.03.25 00:16

这俩编译器用的c佳佳标准好像都不一样

Dennis_Zip
Dennis_Zip   2016.03.25 00:21

在VS中单步调试一下,本地测试两个环境都没问题,io流标准应该都是一样的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++中的字符串流
字符串流stream,用来做数据类型转换;和C以及C++11实现对比。
istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string
 1. istringstream字符串流 #include #include #include   using namespace std;   struct MyStruct {     string str1, str2, str3;     double db;     int n
c++字符串流
字符串流与文件流不同的是,字符串流是以内存中用户定义的字符串或字符数组为输入输出对象,也称为内存流字符数组可以存放字符,整数,浮点型及其他类型 1.再向字符数组存入数据前,要先将数据从二进制转换为ASCII代码,然后存放在缓冲区,再从缓冲区存放到字符数组。 2.从字符数组读数据时,先将字符数组中的ASCII数据送到缓冲区,再赋值给变量前先要将ASCII代码转换成二进制形式1.建立输出字符串流对
关于C函数声明与定义返回类型不一致的解释
c里面 函数声明可以和函数定义(不同的c文件里面) 可以返回不一样的类型 c++不可以 要求更严格 原因是因为c的代码变量会被汇编成内存块,所以只有长度这一说法。与类型关系不大。 c++代码会先生成C代码。所以编译器检查更严格。
C++基础::字符串流(stringstream)
1. ss.clear() vs ss.str("") 2. str() 成员方法的返回值类型 3. 字符串流和文件流的交互 4. 字符串流的功能
如何用vs2005生成.exe可执行安装文件和.exe文件的再打包问题
VS2005中build和rebuild打包生成的.msi和.exe的区别: .msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序.说白了msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里了. setup.exe也允许你安装程序,但程序员在开发setup.exe的时候要比开发setup.msi困
vs2005让程序在win7下获得管理员权限
1、UAC简介 从Windows Vista系统开始,微软为了提高系统安全引入了UAC(User Account Control,用户帐户控制)技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员‌密码。通过在这些操作启动前对其进行验证,UAC 可以帮助防止恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改。UAC可在
在VS2005中使用VS2008编写的DLL在有些机器上无法运行解决办法
用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示“应用程序正常初始化失败”!! 查找了各方面资料,做了各种尝试,网上说什么的都有:有让安装vc2005 sp1补丁的;有让安装vcredist_x86.exe的; 有让把CRT库的dll直接拷贝到程序目录的; 有让清
VC中StatusBar使用方法
方法一: 1.添加成员变量CStatusBarCtrl m_StatusBar; 2.在OnInitDialog()中加入: m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0); int strPartDim[3]= {100, 200, -1}; //分割数量 m_StatusBa
c++ 强大的字符串流处理
本文着重介绍 C++ stringstream 处理字符串,前提是大家对于基本的 char [] , char * , string 已经很熟悉了。       由于本人知识有限, 本文只介绍 stringstream 的两种主要用途:(1)类型转换 (2)字符串处理       (1)类型转换             也许你还习惯于使用 sprintf , itoa 之类的函数,这种C风格