VC6.0 中 getline(cin, string) 需按两次回车解决方法,getiline输入时的用法

症状: 
c++的标准库模板函数getline在读到限定符后还要读取额外字符... 
解决方法:进入X:\Program Files\Microsoft Visual Studio\VC98\Include目录(VC6.0安装的地方),用记事本打开string(注意,不是string.h),
然后找到以下代码段. 

else if (_Tr::eq((_E)_C,_D))
{_Chg = true;
_I.rdbuf()->snextc();//注释掉这段代码
_I.rdbuf()->sbumpc();//添加这段代码
break;
}


微软已经确认这是他们产品中的'臭虫'(bug),这个bug已经在Microsoft Visual C++ .NET得到修正.


对char *p[]类字符串进行操作时,库函数为#include<cstring>,getline用法为:cin.getline(str,num,c);str为字符串名,num为字符串最大长度,c为字符串结束符。
对string str类型的字符串进行操作时,库函数为#include<string>,getline用法为:getline(cin,str);str为字符串名。


PS:          MAX_PATH是C语言运行时库中通过#indefine指令定义的一个宏常量,它定义了编译器所支持的最长全           路径名时的长度。
          在VC++6.0中,_MAX_PATH的之为260.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值