【问题标题】:How to read cin with whitespace up until a newline character?如何用空格读取 cin 直到换行符?
【发布时间】:2009-10-18 01:00:50
【问题描述】:

我希望从 C++ 中的 cin 从当前位置读取,直到换行符转换为字符串。要读取的字符可能包含空格。我的第一次通过失败,因为它停在第一个空格:

string result;

cin >> result;

如果给出 cin:

(cd /my/dir; doSometing)\n

变量结果只得到:

(cd

我认为我应该能够使用流操纵器来完成此操作,但是 skipws 并不完全正确,因为它会在空格和制表符中抛出回车,而且这听起来像是要跳过前导空格。

也许我需要像这样使用streambuf?

streambuf buf;

cin >> buf;

【问题讨论】:

    标签: c++ string cin


    【解决方案1】:
    std::string str; 
    std::getline( std::cin, str);
    

    【讨论】:

    • 注意(因为我刚刚被这个烫伤了):似乎不适用于 AIX 5.1。我必须使用 stdio.h 中定义的fgets
    猜你喜欢
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2010-09-17
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多