免責事項: この質問は、教科書のプログラミング演習に直接関係しています。
テキストブックから C++ プログラミング演習に取り組んでいますが、それを機能させる方法がわかりませんでした。誰かが私のコードのエラーを指摘できれば幸いです。ここで問題が発生します...
「istream_iterator、コピー アルゴリズム、および back_inserter を使用して、空白で区切られた int 値を含むテキスト ファイルの内容を読み取ります。int 値を int のベクトルに配置します。コピー アルゴリズムの最初の引数は、istream_iterator オブジェクトである必要があります。テキスト ファイルの ifstream オブジェクトに関連付けられています. 2 番目の引数は, クラス テンプレート istream_iterator のデフォルト コンストラクタを使用して初期化された istream_iterator オブジェクトである必要があります.結果のオブジェクトは "終了" イテレータとして使用できます. ファイルの内容を読み取った後, ファイルの内容を表示します.結果のベクトル。」
次のコードを作成しました。コードはコンパイルされますが、何もしません。
int main()
{
std::vector< int > testVector;
std::ifstream inputFile( "/Users/GrinNare/Documents/Study/C++/Chapter 16/Chapter 16/16_10_Text_File.txt", std::ios::in );
std::istream_iterator< int > inputFromFile( inputFile );
std::copy( inputFromFile, std::istream_iterator< int >(), back_inserter( testVector ) );
for ( int i = 0; i < testVector.size(); i++ )
std::cout << testVector[i] << "\t";
std::cout << std::endl;
return 0;
}
テキスト ファイルには、「12 23 43 34」が含まれています。
コードをデバッグしようとしたところ、改行ではなく空白で区切られているため、テキスト ファイルの値が int ベクトルに正しく読み込まれていないことに気付きました。
誰か助けてくれませんか?!