-1

私はプログラミングが初めてです。誰でもこれを行う方法を手伝ってもらえますか。私の入力ファイルはこのようなものです

ランニング

このような出力を取得する必要があります

犬は

が走っています

つまり、隣接する単語のペアを読み取る必要があります。C++ でこれを行うにはどうすればよいですか?

4

2 に答える 2

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;
    }
}
于 2013-02-04T01:51:23.733 に答える
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";
}

これにより、コードが少し短縮され (ちょっといい感じ)、不必要な文字列のコピーが回避されます (いい感じです)。

于 2013-02-04T02:43:54.027 に答える