荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: bakey (猪朋狗友), 信区: Program
标 题: [合集]讨论:getline()的用法...
发信站: 荔园晨风BBS站 (2005年12月28日01:31:03 星期三), 站内信件
☆ 1 ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标 题: 讨论:getline()的用法...
时 间: Sun Dec 25 16:00:22 2005
cin.getline(char *, int, char),读取由int字段指定长度的字符串,或读到char字段所指
定的字符为止。
注意的是:getline()如果在遇到回车符也会结束的,不过它和get()不同的是它会把回车符也
读进字符串中!
我记得我学的是这样的,不知各们同学有什么不同的意见.
☆ 2 ──────────── 我是分割线 ─────────────────☆
发信人: kaman (天外飛仙), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: 2005年12月25日16:06:36 星期天
我记得getline不读的,
vc6对标准支持不太好,microsoft曾经承认过这个bug的:
FIX: getline Template Function Reads Extra Character
RESOLUTION
Modify the getline member function, which can be found in the following system
header file "string", as follows:
else if (_Tr::eq((_E)_C, _D))
{_Chg = true;
// _I.rdbuf()->snextc(); // Remove this line and add the line below.
_I.rdbuf()->sbumpc();
break; }
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are
listed at the beginning of this article.
This problem was corrected in Microsoft Visual C++ .NET.
MORE INFORMATION
The following sample program demonstrates the bug: //test.cpp
#include <string>
#include <iostream>
int main () {
std::string s,s2;
std::getline(std::cin,s);
std::getline(std::cin,s2);
std::cout << s <<'\t'<< s2 << std::endl;
return 0;
}
//Actual Results:
Hello<Enter Key>
World<Enter Key>
<Enter Key>
Hello World
//Expected Results:
Hello<Enter Key>
World<Enter Key>
Hello World
--------------------------------------------------------------------------------
APPLIES TO
? The Standard C++ Library, when used with:
Microsoft Visual C++ 6.0 Enterprise Edition
Microsoft Visual C++ 6.0 Professional Edition
Microsoft Visual C++ 6.0 Standard Edition
【 在 starsun (小刚与微软 ) 的大作中提到: 】
: cin.getline(char *, int, char),读取由int字段指定长度的字符串,或读到char字段所
:
: 定的字符为止。
: 注意的是:getline()如果在遇到回车符也会结束的,不过它和get()不同的是它会把回车符
:
: 读进字符串中!
:
:
: 我记得我学的是这样的,不知各们同学有什么不同的意见.
☆ 3 ──────────── 我是分割线 ─────────────────☆
发信人: jaly (が勒のせ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:08:50 2005
我在网上查了一下...好像vc6之后的版本没有了这个bug了...
唉..难道要我跳槽java ...
【 在 kaman 的大作中提到: 】
: 我记得getline不读的,
: vc6对标准支持不太好,microsoft曾经承认过这个bug的:
: FIX: getline Template Function Reads Extra Character
: RESOLUTION
: Modify the getline member function, which can be found in the following syst..
: else if (_Tr::eq((_E)_C, _D))
: {_Chg = true;
: // _I.rdbuf()->snextc(); // Remove this line and add the line below.
: _I.rdbuf()->sbumpc();
: break; }
: STATUS
: Microsoft has confirmed that this is a bug in the Microsoft products that ar..
: This problem was corrected in Microsoft Visual C++ .NET.
: MORE INFORMATION
: The following sample program demonstrates the bug: //test.cpp
: #include <string>
: #include <iostream>
: int main () {
: std::string s,s2;
: std::getline(std::cin,s);
: (以下引言省略...)
☆ 4 ──────────── 我是分割线 ─────────────────☆
发信人: kaman (天外飛仙), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: 2005年12月25日16:09:12 星期天
- -
【 在 jaly (が勒のせ) 的大作中提到: 】
: 我在网上查了一下...好像vc6之后的版本没有了这个bug了...
: 唉..难道要我跳槽java ...
: 【 在 kaman 的大作中提到: 】
: : 我记得getline不读的,
: : vc6对标准支持不太好,microsoft曾经承认过这个bug的:
: : FIX: getline Template Function Reads Extra Character
: : RESOLUTION
: : Modify the getline member function, which can be found in the following syst
: : else if (_Tr::eq((_E)_C, _D))
: : {_Chg = true;
: .................(以下省略)
☆ 5 ──────────── 我是分割线 ─────────────────☆
发信人: bso (meteor), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:09:42 2005
对前面第一次输入两次回车符,第二次输入一次回车
我的看法是
getline()函数只保存一个回车符
第一次输入时把第一个回车符读进去了,第二个回车做为分隔
第二次输入时把第二个回车符读入字符中,遇到第三个回车符时将这两个回车符之间的字符
读入,因为第二个
回车符已被读入,所以第三个回车符做为分隔符并保留作为下一个字符读取
不知我这样说对不对~~~~~~~~~~~~我的理解是这样
【 在 starsun 的大作中提到: 】
: cin.getline(char *, int, char),读取由int字段指定长度的字符串,或读到char字段..
:
: 定的字符为止。
: 注意的是:getline()如果在遇到回车符也会结束的,不过它和get()不同的是它会把回车..
:
: 读进字符串中!
:
:
: 我记得我学的是这样的,不知各们同学有什么不同的意见.
☆ 6 ──────────── 我是分割线 ─────────────────☆
发信人: Yeats (冬虫夏草||粉雪), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: 2005年12月25日16:09:49 星期天
= =||
因为编译器的问题而跳槽。。orz。。
【 在 jaly (が勒のせ) 的大作中提到: 】
: 我在网上查了一下...好像vc6之后的版本没有了这个bug了...
: 唉..难道要我跳槽java ...
: 【 在 kaman 的大作中提到: 】
: : 我记得getline不读的,
: : vc6对标准支持不太好,microsoft曾经承认过这个bug的:
: : FIX: getline Template Function Reads Extra Character
: : RESOLUTION
: : Modify the getline member function, which can be found in the following syst
: : else if (_Tr::eq((_E)_C, _D))
: : {_Chg = true;
: .................(以下省略)
☆ 7 ──────────── 我是分割线 ─────────────────☆
发信人: jaly (が勒のせ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:12:34 2005
似乎是这样的...-_-!
bug..bug..bug..
【 在 bso 的大作中提到: 】
: 对前面第一次输入两次回车符,第二次输入一次回车
: 我的看法是
: getline()函数只保存一个回车符
: 第一次输入时把第一个回车符读进去了,第二个回车做为分隔
: 第二次输入时把第二个回车符读入字符中,遇到第三个回车符时将这两个回车符之间的?..
: 读入,因为第二个
: 回车符已被读入,所以第三个回车符做为分隔符并保留作为下一个字符读取
:
: 不知我这样说对不对~~~~~~~~~~~~我的理解是这样
:
: 【 在 starsun 的大作中提到: 】
: : cin.getline(char *, int, char),读取由int字段指定长度的字符串,或读到char字..
: :
: : 定的字符为止。
: : 注意的是:getline()如果在遇到回车符也会结束的,不过它和get()不同的是它会把回..
: :
: : 读进字符串中!
: :
: :
: : 我记得我学的是这样的,不知各们同学有什么不同的意见.
☆ 8 ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:13:09 2005
嗯,看下面那个例子,如果运行结果是Holle Word的话应该不读.呵呵.神奇.
【 在 kaman 的大作中提到: 】
: 我记得getline不读的,
: vc6对标准支持不太好,microsoft曾经承认过这个bug的:
: FIX: getline Template Function Reads Extra Character
: RESOLUTION
: Modify the getline member function, which can be found in the following syst..
: else if (_Tr::eq((_E)_C, _D))
: {_Chg = true;
: // _I.rdbuf()->snextc(); // Remove this line and add the line below.
: _I.rdbuf()->sbumpc();
: break; }
: STATUS
: Microsoft has confirmed that this is a bug in the Microsoft products that ar..
: This problem was corrected in Microsoft Visual C++ .NET.
: MORE INFORMATION
: The following sample program demonstrates the bug: //test.cpp
: #include <string>
: #include <iostream>
: int main () {
: std::string s,s2;
: std::getline(std::cin,s);
: (以下引言省略...)
☆ 9 ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:18:20 2005
哈哈,那他有一天会跳回来地......
【 在 Yeats 的大作中提到: 】
: = =||
: 因为编译器的问题而跳槽。。orz。。
: 【 在 jaly (が勒のせ) 的大作中提到: 】
: : 我在网上查了一下...好像vc6之后的版本没有了这个bug了...
: : 唉..难道要我跳槽java ...
: : .................(以下省略)
☆ 10 ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:19:05 2005
用get()不行吗?!
【 在 starsun 的大作中提到: 】
: 哈哈,那他有一天会跳回来地......
: 【 在 Yeats 的大作中提到: 】
: : = =||
: : 因为编译器的问题而跳槽。。orz。。
☆ 11 ──────────── 我是分割线 ─────────────────☆
发信人: jaly (が勒のせ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:21:26 2005
一样的...估计是string类跟get. 之间的问题
【 在 starsun 的大作中提到: 】
: 用get()不行吗?!
: 【 在 starsun 的大作中提到: 】
: : 哈哈,那他有一天会跳回来地......
☆ 12 ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:23:23 2005
那你跳吧....- -!
【 在 jaly 的大作中提到: 】
: 一样的...估计是string类跟get. 之间的问题
: 【 ?starsun 的大作中提到: 】
: : 用get()不行吗?!
☆ 13 ──────────── 我是分割线 ─────────────────☆
发信人: crycz (打印刻录CD/DVD javaLover), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: 2005年12月25日16:26:42 星期天
好啊...我多一个伴.虽然不认识你
【 在 jaly (が勒のせ) 的大作中提到: 】
: 我在网上查了一下...好像vc6之后的版本没有了这个bug了...
: 唉..难道要我跳槽java ...
: 【 在 kaman 的大作中提到: 】
: : 我记得getline不读的,
: : vc6对标准支持不太好,microsoft曾经承认过这个bug的:
: : FIX: getline Template Function Reads Extra Character
: : RESOLUTION
: : Modify the getline member function, which can be found in the following syst
: : else if (_Tr::eq((_E)_C, _D))
: : {_Chg = true;
: .................(以下省略)
☆ 14 ──────────── 我是分割线 ─────────────────☆
发信人: jaly (が勒のせ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:43:07 2005
对 c++ 还是有点感情啊....
有点放心它不下啊... ^_^
【 在 starsun 的大作中提到: 】
: 那你跳吧....- -!
: 【 在 jaly 的大作中提到: 】
: : 一样的...估计是string类跟get. 之间的问题
☆ 15 ──────────── 我是分割线 ─────────────────☆
发信人: jaly (が勒のせ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:43:44 2005
嗯..好的 ...我会学着双管齐下的..
【 在 crycz 的大作中提到: 】
: 好啊...我多一个伴.虽然不认识你
: 【 在 jaly (が勒のせ) 的大作中提到: 】
: : 我在网上查了一下...好像vc6之后的版本没有了这个bug了...
: : 唉..难道要我跳槽java ...
: : .................(以下省略)
☆ 16 ──────────── 我是分割线 ─────────────────☆
发信人: Yeats (冬虫夏草||粉雪), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: 2005年12月25日16:45:05 星期天
宜精不宜广。。
【 在 jaly (が勒のせ) 的大作中提到: 】
: 嗯..好的 ...我会学着双管齐下的..
: 【 在 crycz 的大作中提到: 】
: : 好啊...我多一个伴.虽然不认识你
: : 【 在 jaly (が勒のせ) 的大作中提到: 】
☆ 17 ──────────── 我是分割线 ─────────────────☆
发信人: crycz (打印刻录CD/DVD javaLover), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: 2005年12月25日16:53:24 星期天
我不认为这样.
我认为精一种,了解多种.
现在找工作的笔试都是多种语言来的...
至少也要懂基础.到时你就会觉得我的话没错...
【 在 Yeats (冬虫夏草||粉雪) 的大作中提到: 】
: 宜精不宜广。。
: 【 在 jaly (が勒のせ) 的大作中提到: 】
: : 嗯..好的 ...我会学着双管齐下的..
☆ 18 ──────────── 我是分割线 ─────────────────☆
发信人: jaly (が勒のせ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:54:52 2005
嗯...影响所见略同啊....哈哈..
嗯嗯...就是这样了..
【 在 crycz 的大作中提到: 】
: 我不认为这样.
: 我认为精一种,了解多种.
: 现在找工作的笔试都是多种语言来的...
: 至少也要懂基础.
: 【 在 Yeats (冬虫夏草||粉雪) 的大作中提到: 】
: : 宜精不宜广。。
☆ 19 ──────────── 我是分割线 ─────────────────☆
发信人: Yeats (冬虫夏草||粉雪), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: 2005年12月25日16:55:11 星期天
我只是不想打那么多字。。观点一样。。
【 在 crycz (打印刻录CD/DVD javaLover) 的大作中提到: 】
: 我不认为这样.
: 我认为精一种,了解多种.
: 现在找工作的笔试都是多种语言来的...
: 至少也要懂基础.到时你就会觉得我的话没错...
: 【 在 Yeats (冬虫夏草||粉雪) 的大作中提到: 】
: : 宜精不宜广。。
☆ 20 ──────────── 我是分割线 ─────────────────☆
发信人: Epyon (一物降一物), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 16:56:03 2005
好象是读n-1个,好象是提取了换行或指定分隔符,但是不放入你所说的字符串,null终止
【 在 starsun 的大作中提到: 】
: cin.getline(char *, int, char),读取由int字段指定长度的字符串,或读到char字段..
:
: 定的字符为止。
: 注意的是:getline()如果在遇到回车符也会结束的,不过它和get()不同的是它会把回车..
:
: 读进字符串中!
:
:
: 我记得我学的是这样的,不知各们同学有什么不同的意见.
☆ 21 ──────────── 我是分割线 ─────────────────☆
发信人: jaly (が勒のせ), 信区: Program
标 题: Re: 讨论:getline()的用法...
时 间: Sun Dec 25 17:03:57 2005
不是null 中止吧....应该是 \n
【 在 Epyon 的大作中提到: 】
: 好象是读n-1个,好象是提取了换行或指定分隔符,但是不放入你所说的字符串,null?..
:
: 【 在 starsun 的大作中提到: 】
: : cin.getline(char *, int, char),读取由int字段指定长度的字符串,或读到char字..
: :
: : 定的字符为止。
: : 注意的是:getline()如果在遇到回车符也会结束的,不过它和get()不同的是它会把回..
: :
: : 读进字符串中!
: :
: :
: : 我记得我学的是这样的,不知各们同学有什么不同的意见.
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店