文字単位でテキストファイルを読み込もうとしています。私はファイルを読むために文字列を使用しています。ファイルを読み込むための私のコードは以下の通りです:はstd :: stringを別のstd :: stringの0番目のインデックスに設定できません
int main()
{
std::ifstream data;
data.open("C:\\Users\\Christian Dean\\Documents\\CodeLiteWorkspace\\CplusplusPractice\\src\\test_file.qz");
std::string data_str;
int counter = 0;
data >> data_str;
for(int i = 0; i < data_str.length(); i++)
{
std::string tokenizer = data_str[i];
if (tokenizer == "output")
{
counter++;
}
}
std::cout << counter << std::endl;
data.close();
return 0;
}
あなたが見ることができるように、私は、forループ、私は、文字列data_str
の0番目のインデックスに等しい文字列tokenizer
を設定していました。しかしコンパイルするとき、それは誤り
`main.cpp:27:37: error: invalid conversion from 'char' to ''const char*' [-fpermissive].
私は本当に私は、文字によるファイルの文字を読むことができますどのように他を知らないを示しています。私はtokenizer
をタイプchar
として設定しようとしました。しかし、私がプログラムを実行すると、counter
の変数は0
に等しいと言います。だから明らかにtokenizer
変数をタイプにしても機能しませんでした。それが必要とされる場合
テキストファイルの内容は以下の通りです:
output: "Hello World
'tokenizer'に一度に1文字しか含まれていない場合、' tokenizer'の 'output'文字列に文字がどれだけ読み込まれるかはわかりません。 – Yakk
Yakkのコメントを拡大するには、一度に1文字ずつ入力するだけで単語全体を見ることはできません。代わりに、 'data.eof()'がtrueを返すまで文字列を抽出した場合は、ファイル内の各単語を歩き回って比較することができます。 – nate
自分のコメントでネイトの意図を誤解していますか?ループからeofへその他の情報:http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong – user4581301