ifstream クラスを使用して入力ファイルから単語を読み取る場合、次の式を使用しました。
#include <iostream>
#include <fstream>
int main(int argc, char *argv[])
{
std::ifstream inputStream(myFile.txt);
std::string myString;
myFile.open()
while(myFile.good())
{
myFile >> myString;
printf("%s \n", myString);
}
return 0;
}
myFile.txt の内容: " これは単純なプログラムです。 "
は、g++ コンパイラを使用して期待どおりにコンパイルおよび実行されます。
ただし、msvc 2008 を使用してコンパイルした場合、同じコードは抽出演算子 (>>) でエラーを返し、std::string を初期化された文字配列またはサポートされているネイティブ型のいずれかに置き換える必要があります。
標準ライブラリの使用法が実装全体で同じであると予想していたので、これは私を失望させました。
コンパイル エラーを理解し、c_str() を使用して修正する方法を知っています。
しかし、標準ライブラリの使用法がプラットフォーム間で異なる理由を誰かが明らかにできれば、私は大いに役立ちます。
私にとって、それはもはや標準ではありません!!
編集:コードが完全になるように更新されました。myFile.txt の内容が更新されました。