С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
#1

Fstream - чтение из файла - C++

09.06.2014, 17:28. Просмотров 2283. Ответов 11
Метки нет (Все метки)

подскажите начинающему программисту как читать файл целиком.. например последовательность чисел
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2014, 17:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Fstream - чтение из файла (C++):

Чтение всего файла fstream - C++
В общем мне казалась задача вполне очевидна и частая считать файл целиком в строку, но почему-то я не нашёл ничего готового (типа...

Заменить чтение из файла аналогом fstream - C++
char fileName; printf("Enter file name: "); scanf("%255s", fileName); FILE *open = fopen(fileName, "r"); ...

Чтение файла в массив символов используя fstream - C++
Добрый день. Нужно считать файл в массив символов(vector). Использую fstream.

Как начать чтение файла сначала после Getline с первой строчки в fstream? - C++
Пишу программу,которая читает строки их текстового файла и передаёт их в поле Edit1 поочерёдно,по нажатию кнопки.Когда строки...

fstream не работает и чтение и запись - C++
Добрый день! Не пойму, почему введение функции getline становится причиной того, что запись в файл не идет. Если getline убрать, то все...

Запись/чтение структуры через fstream - C++
Доброго времени суток! у меня есть несколько вопросов по поводу файловых потоков. 1. Как можно записать/прочитать массив структур в...

11
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 17:29 #2
Цитата Сообщение от Xoniks Посмотреть сообщение
подскажите начинающему программисту как читать файл целиком.. например последовательность чисел
С помощью класса std::ifstream.
0
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
09.06.2014, 17:41  [ТС] #3
ну Ifstream f.open это я знаю.. а как например читать до конца файла
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 17:44 #4
Так же, как и не до конца, только до конца О_о в чем именно вопрос?
0
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
09.06.2014, 17:51  [ТС] #5
допустим.. надо считать из файла несколько чисел.. за ранее количество чисел не известно, и не задано ни где, мне нужен цикл, для чтения до конца файла
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 17:53 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
while (file.good())
  {
  file >> переменная;
  }
1
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
09.06.2014, 20:29  [ТС] #7
а вот еще другой вопрос по этой же теме.. как прочитать фаил 2 раз за 1 задачу..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ifstream f1;
    ofstream f2;
    f1.open("D:\\file1.txt");
    f2.open("D:\\file2.txt");
 
    cout<<"f1 array: ";
    while (f1.good())
  {
  f1 >> n;
  cout<<n<<" ";
  size++;
  }
 
  int *a = new int[size];
 
  while (f1.good())
  {
      f1>>n;
      
      a[k]=n;
      k++;
  }
cout<<endl;
если сделать так.. то 2 раз не получается прочитать из файла тоже самое
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 20:49 #8
Цитата Сообщение от Xoniks Посмотреть сообщение
а вот еще другой вопрос по этой же теме.. как прочитать фаил 2 раз за 1 задачу..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ifstream f1;
    ofstream f2;
    f1.open("D:\\file1.txt");
    f2.open("D:\\file2.txt");
 
    cout<<"f1 array: ";
    while (f1.good())
  {
  f1 >> n;
  cout<<n<<" ";
  size++;
  }
 
  int *a = new int[size];
 
  while (f1.good())
  {
      f1>>n;
      
      a[k]=n;
      k++;
  }
cout<<endl;
если сделать так.. то 2 раз не получается прочитать из файла тоже самое
C++
1
f1.seekg(0, f1.beg); //переместит текущую позицию на начало стрима
Добавлено через 1 минуту
ЗЫ если ты не знаешь, сколько там будет чисел, используй std::vector (ну или другой динамический контейнер) и push_back.
1
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
09.06.2014, 20:59  [ТС] #9
вектор использовать нельзя.. задание именно на динамический массив
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 21:24 #10
Цитата Сообщение от Xoniks Посмотреть сообщение
вектор использовать нельзя.. задание именно на динамический массив
Вектор и есть динамическим массивом.
0
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
09.06.2014, 22:29  [ТС] #11
да, вектор классная шутка, но
C++
1
#include <vector>
использовать нельзя увы)) не примут задачу
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 23:29 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <fstream>
#include <iostream>
#include <iterator>
 
int main()
  {
  std::ifstream f1("file1.txt");
  size_t size = std::distance(std::istream_iterator<int>(f1), std::istream_iterator<int>());
  std::cout << "There are " << size << " ints in file" << std::endl;
  f1.clear();
  f1.seekg(0, f1.beg);
 
  int* some_numbers = new int[size];
  for (size_t i = 0; i < size; ++i)
    {
    f1 >> some_numbers[i];
    std::cout << some_numbers[i] << ' ';
    }
  std::cout << std::endl;
 
  //do something
 
  delete [] some_numbers;
  std::cin.get();
  return 0;
  }
0
09.06.2014, 23:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2014, 23:29
Привет! Вот еще темы с ответами:

Запись/чтение структур (файлы) + разница между FILE * и <fstream> - C++
Всем привет. Порыскал по форуму, погуглил... Решения есть, но они не ясны (что, почему да как) и не все работают. Однако, я так и не нашёл...

fstream, создание файла - C++
Привет всем, не могу справиться с проблемой. fstream file(FILE,ios::in|ios::out|ios::binary); файл не создается, но если создать...

Запись в середину файла - fstream - C++
Как можно при помощи fstream (хотелось бы именно им, потому что он умеет и читать, и писать) записать что-либо в середину файла (или куда...

Определение длины файла для fstream - C++
fseek(input, 0, SEEK_END); //указываем позицыю unsigned long SizeOfIshod = ftell(input);//создаем переменную которая будет возвращать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.