标题:如何判断是否读取到回车
只看楼主
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
结帖率:100%
已结贴  问题点数:10 回复次数:7 
如何判断是否读取到回车
大家晚上好……有一个程序只需对输入的一行字符一个个进行独立判断,C的话用getchar()就好了,但是用C++的时候发现CIN似乎不接受回车符……搜索解决方法的时候很多人都建议将getline,然后处理数组或者定义一个流什么的,但是这样一行可能很长,要占用很多空间。有没有别的办法?
搜索更多相关主题的帖子: 空间 搜索 晚上好 如何 
2012-02-04 00:21
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:3 
C++用string + getline
2012-02-04 08:35
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
得分:4 
C++兼容C,也可以用。
2012-02-04 08:59
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
得分:0 
回复 2楼 hahayezhe
有时候没必要存储所有的字符,这样很浪费

酱油实习生
2012-02-04 10:02
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
得分:0 
回复 3楼 lucky563591
那还要stdio.h?

酱油实习生
2012-02-04 10:02
鹰派程序员
Rank: 2
等 级:论坛游民
帖 子:36
专家分:85
注 册:2012-2-3
得分:0 
你好,C++兼容c,你可以用getline来实现
2012-02-04 10:03
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:3 
可以用 cin.get()。不过一般还是用 getline() 的多,也方便一点。

如果你怕费内存,可以给第二个参数,限制它读的字符数。
这样,如果读到了换行符,或者把缓冲读满了,或者读到了文件结束符之类的,函数会有不同的表现。可以之后测试。
任何情况下,库函数都会保证在字符串结尾添加 '\0'。
比如:
程序代码:
#include <iostream>
using namespace std;

int
main (int argc, char *argv[])
{
    char a[5];

    cin.getline(a, 5);        // input 123456789
    cout << a << endl;        // output 1234
    cout << cin.gcount() << endl;    // 4
    cout << cin.fail() << endl;      // 1

    cin.clear();
    cin.sync();

    cin.getline(a, 5);        // input 123
    cout << a << endl;        // output 123
    cout << cin.gcount() << endl;    // 4
    cout << cin.fail() << endl;      // 0

    return 0;
}
2012-02-04 10:19
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
得分:0 
谢谢各位

酱油实习生
2012-02-04 21:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-360369-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051260 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved