2012-01-23 14 views
3

私はC++で1行ずつテキストファイルを読みます。 「...ここになど長いのです」行ごとにtxtを読む

------- 

This file is a test to see 
how we can reverse the words 
on one line. 

Let's see how it works. 

Here's a long one with a quote from The Autumn of the Patriarch. Let's see if I can say it all in one breath and if your program can read it all at once: 
Another line at the end just to test. 
------- 

問題は、私は読むことができている唯一の段落で始まる、それが停止します。これは、テキストファイルである

while (inFile) 
{ 
getline(inFile,oneLine); 
} 

:私はこのコードを使用しています"すぐに:" すべてのテキストを読むために解決できませんでした。提案はありますか?

+0

あなたはあなたが1行を読むたびに 'oneLine'の内容を上書きしているので、whileループが終了した後の' oneLine'中の唯一の内容は最後の行です。 – PeterT

+0

あなたは本当にたくさんのコードを含んでいませんでした... – DilithiumMatrix

答えて

6

イディオムを読んで、正しい行は次のとおりです。

std::ifstream infile("thefile.txt"); 

for (std::string line; std::getline(infile, line);) 
{ 
    // process "line" 
} 

それともforループ好きではない人のための代替:予想通り、これはファイルが「couldn場合でも動作すること

{ 
    std::string line; 
    while (std::getline(infile, line)) 
    { 
     // process "line" 
    } 
} 

注意をその条件に専用の診断を作成する場合は、先頭に追加のチェックif (infile)を追加することもできます。

+0

私は本当にこれが地球上のすべてのC++本(初心者向け)の最初のページにあったと思います。 –

+1

@AndréCaron:それは私のファイルの "頻繁に貼り付けられた答え"の最初のエントリです。 –

+0

ハハハハ「頻繁にペーストされた回答」!私はそれを覚えています! –

関連する問題