C ++ потоки не совместимы с C stdio потоками. Другими словами, вы не можете использовать итераторы C ++ с FILE*
или fread
. Однако если вы используете средства C ++ std::fstream
вместе с istream_iterator
, вы можете использовать итератор вставки для вставки в контейнер C ++.
Предполагая, что у вас есть входной файл "input.txt", который содержит текстовые номера ASCII, разделенные пробелами, вы можете сделать:
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
int main()
{
std::ifstream ifs("input.txt");
std::vector<int> vec;
// read in the numbers from disk
std::copy(std::istream_iterator<int>(ifs), std::istream_iterator<int>(), std::back_inserter(vec));
// now output the integers
std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, "\n"));
}