48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
|
Accessing Data in a File
|
||
|
#include <algorithm>
|
||
|
#include <cstdlib>
|
||
|
#include <fstream>
|
||
|
#include <functional>
|
||
|
#include <iostream>
|
||
|
#include <iterator>
|
||
|
#include <vector>
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
template <class T>
|
||
|
void print(T& c){
|
||
|
for( typename T::iterator i = c.begin(); i != c.end(); i++ ){
|
||
|
std::cout << *i << endl;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
int main(){
|
||
|
vector<int> output_data( 10 );
|
||
|
generate( output_data.begin(), output_data.end(), rand );
|
||
|
|
||
|
transform( output_data.begin(), output_data.end(),output_data.begin(), bind2nd( modulus<int>(), 10 ) );
|
||
|
|
||
|
ofstream out( "data.txt" );
|
||
|
if( !out )
|
||
|
{
|
||
|
cout << "Couldn't open output file\n";
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
copy( output_data.begin(), output_data.end(),ostream_iterator<int>( out, "\n" ) );
|
||
|
out.close();
|
||
|
|
||
|
ifstream in( "data.txt" );
|
||
|
if( !in )
|
||
|
{
|
||
|
cout << "Couldn't open input file\n";
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
vector<int> input_data( (istream_iterator<int>( in )),istream_iterator<int>() );
|
||
|
in.close();
|
||
|
|
||
|
print( output_data );
|
||
|
print( input_data );
|
||
|
}
|