注册 登录
编程论坛 C++教室

关于cin.getline的问题

yangliangbin 发布于 2009-12-27 16:08, 1105 次点击
代码如下:
#include<iostream>
using namespace std;
int main()
{
    char ch[100];
    cout<<"input a string:"<<endl;
    do
    {
        cin.getline(ch,100,' ');
        cout<<ch;
    }while(!cin.eof());
    return 0;
}

当输入:I like c++
输出为:Ilike
什么原因????


5 回复
#2
冰蟾子2009-12-27 16:43
istream &getline(char *,int,char_delim='\n')
#3
yangliangbin2009-12-27 20:47
关于cin.getline的问题

代码如下:
#include<iostream>
using namespace std;
int main()
{
    char ch[100];
    cout<<"input a string:"<<endl;
    do
    {
        cin.getline(ch,100,' ');
        cout<<ch;
    }while(!cin.eof());
    return 0;
}

当输入:I like c++
输出为:Ilike
愿意是想把空格去掉。。。可是输出却只输出一部分。。少了一部分了。
什么原因????
#4
秀痘魔导士2009-12-29 14:27
I like c++ 先读到第一个空格,输出I,然后读到第二个空格,输出like,最后读到EOF,结束,不输出。
你误解了第三个参数的意思。
#5
pangding2009-12-29 14:35
我怎么觉得不会读到文件结束符呀。如果输入是 stdin 的话,除非显式给文件结束符。
像这种情况,楼主自己单步追踪一下就能知道为什么,而且比我们说的要详细~~
#6
flyingcloude2009-12-29 15:21
string str;
getline(cin, str);
cout << str << '\n';

1