如何读取相邻的字符串

时间:2013-02-04 01:40:08

标签: c++

我是编程新手。任何人都可以帮我如何做到这一点。 我的输入文件是这样的

  

     

     

     

运行

我需要得到像这样的输出

  

     

狗是

     

正在运行

这是我必须阅读相邻的单词对。我如何在C ++中执行此操作?

2 个答案:

答案 0 :(得分:8)

这是我的新手 - C ++方法(我只是C ++的初学者)。我确信一个更有经验的C ++开发人员会想出更好的东西: - )

#include <fstream>
#include <iostream>
#include <string>

int main()
{
    std::ifstream file("data.txt");    
    std::string lastWord, thisWord;

    std::getline(file, lastWord);

    while (std::getline(file, thisWord))
    {
        std::cout << lastWord << " " << thisWord << '\n';
        lastWord = thisWord;
    }
}

答案 1 :(得分:2)

虽然我认为@dreamlax显示了一些不错的代码,但我认为我的做法有点不同:

#include <fstream>
#include <string>
#include <iostream>

int main() { 
    std::string words[2];
    std::ifstream file("data.txt");

    std::getline(file, words[1]);
    for (int current = 0; std::getline(file, words[current]); current ^= 1)
        std::cout << words[current] << ' ' << words[current^1] << "\n";
}

这会稍微缩短代码(很好)并避免不必要地复制字符串(更好)。