基本的にこのプログラムは.txtファイルで単語を検索し、見つかった場合は行と行番号を出力します。ここまで私がこれまで持っていたことがあります。行の一部を読む(getline())
コード:
#include "std_lib_facilities.h"
int main()
{
string findword;
cout << "Enter word to search for.\n";
cin >> findword;
char filename[20];
cout << "Enter file to search in.\n";
cin >> filename;
ifstream ist(filename);
string line;
string word;
int linecounter = 1;
while(getline(ist, line))
{
if(line.find(findword) != string::npos){
cout << line << " " << linecounter << endl;}
++linecounter;
}
keep_window_open();
}
解決しました。
これはまさに私が探していたものです。しかし、私はまだ問題があります。それは単語がない結果を出力しています。 ! - string :: nposは含まれていませんでした。なぜなら、あなたがその意味を知っていなかったからです。私はコードを編集して、自分が持っているものを表示します。 – trikker
!= string :: nposは、単語がその行に存在しない場合に比較する値です。つまり、findで返された結果がstring :: nposと等しくない場合は、単語が見つかったことを意味します。そうでなければ、行は無視されます。 – Milan
忘れてしまいました。私はちょうどそれについていくつかの研究をします。 – trikker