免责声明:这个问题与教科书中的编程练习直接相关。
我正在从教科书中进行 C++ 编程练习,但无法弄清楚如何让它工作。希望有人能指出我的代码中的错误。问题来了……
“使用 istream_iterator、复制算法和 back_inserter 来读取包含用空格分隔的 int 值的文本文件的内容。将 int 值放入 int 向量中。复制算法的第一个参数应该是 istream_iterator 对象与文本文件的 ifstream 对象关联。第二个参数应该是使用类模板 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 向量,因为它们由空格分隔,而不是新行。
有人可以帮忙吗?!