2016-11-17 15 views
2

入力ファイルのストリームでテキスト文書を作成しようとしています。残りのコードの使用。私は、ファイル入力ストリームから読み込む私が評価しているコードの行から、文字の特定の位置を見つけるにはどうすればよいですか

myIn >> ch; 
while (myIn) 
{ 
    //proceeds with code 
} 

のようなループを行う場合、私は持っている唯一の問題は、どのように私は、私はちょうどに読まその文字の行番号と位置を見つけることができますか?

私はHで読みたい、そしてHが0の位置続けると、1行目で発見されたと言うこの

 
Hello 
How are you 

などのテキストドキュメント上の例えば、位置1行で見つかった、wを読み込みます2.コード全体の文字列を取得することなく?

答えて

1

行番号と文字位置を取得する唯一の方法は、自分で数えることである。

char c; 
unsigned int character_count = 0U; 
unsigned int line_number = 0U; 
while (in.get(c)) 
{ 
    ++character_count; 
    if (c == '\n') 
    { 
    ++line_number; 
    // Optional: 
    // character_count = 0U; 
    } 
} 

注:空白をスキップします表現in>>c

+0

感謝しましたが、プライミングの前にmyIn >> noskipwsを使用すると、それらをスキップせずに\ n文字に読み込むことに気付きました。 – Crazypete3

0

文字と行のカウンターを追加します。これは、whileループで手動で増加します。

+0

@ Crazypete3:ようこそstackoverflow。あなたが好きな回答のポイントを与えて、「正しい」もの、つまりあなたを最も助けてくれた回答にすることを忘れないでください。 – steffen

+0

回答のポイントを与えて、正しくマークするにはどうすればよいですか? – Crazypete3

+0

適切なコード例を追加してください。 –

関連する問題