你怎么知道输入流何时到达一行中的最后一个字?

hig*_*241 1 c++

我正在用C++中的ifstream读取输入.输入来自一组由制表符分隔的单词,所以我正在阅读类似"word1 word2 word3"的内容,如流>> w1 >> w2 >> w3; 我需要知道什么时候我已经达到了最后一句话,所以我该怎么做呢?单词的数量是可变的,但它应该始终是偶数.另外,最后一个单词是否包含\n,或者\n是否为最后一个单词?

Jam*_*nze 8

最简单(通常)的解决方案是使用读取行 std::getline,然后使用std::istringstream以下方法解析行 :

std::string line;
while ( std::getline( std::cin, line ) ) {
    std::istringstream s( line );
    std::vector<std::string> words;
    std::string word;
    while ( s >> word ) {
        words.push_back( word );
    }
    //  ...
}
Run Code Online (Sandbox Code Playgroud)