3

我在这里遇到一个问题,这让我很难过。所以,我必须阅读以下格式的内容[请同时阅读正文,以更好地理解我的问题]:

               TITLE

The text is actually from a file being redirected 
to input stream via piping in linux bash. I cannot
use ifstream or anything other than some form of cin,
of which I believe getline to be the most useful. 

etc.

具体来说,让我感到困难的是 TITLE 和正文之间的空白。我似乎想不出一种使用 getline(cin,string) 来解决这个问题的方法。

我想出的最好的:

while(inputString.size() != 0)
    getline(cin,inputString);
    //process string

... 与上述空白行一起被抛出窗口。

有什么想法吗,伙计们?

谢谢!

4

2 回答 2

5

我认为这里真正的问题是你的逻辑。您的输入包含空行和非空行,因此如果您想阅读所有这些行,则不应依赖行的长度。这可以通过测试返回的流来完成std::getline,如下所示:

while (getline(cin, inputString))
{
    // Do something with inputString...
}

cin循环逐行读取并在到达输入末尾时停止。

于 2013-10-09T06:11:44.097 回答
0

应该

while(inputString.size() == 0)

当字符串大小为 0 时,您继续阅读。

为了更清楚,试试这个

while(inputString.empty())
于 2013-10-09T06:00:16.320 回答