Форум программистов, компьютерный форум CyberForum.ru

Считать информацию из файла в массив структур - C++

Восстановить пароль Регистрация
 
kotleta
 Аватар для kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
21.11.2012, 11:16     Считать информацию из файла в массив структур #1
Здравствуйте!

Выполняю упражнение из книги Прата "С++ язык"
Суть в том, что нужно из файла считать определенное количество элементов (количество указано в самом начале файла), и записать эти элементы в каждый элемент структуры patron. А затем вывести все эти элементы.

Чтобы вам было проще разбираться. Файл file_69upr.txt, его содержимое
4
Sam Stone
2000
Freida Flass
100500
Tammy Tubbs
5000
Rich Raptor
55000
Код программы

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
 ifstream f("file_69upr.txt");
 if(f.is_open() == false)
 {
     cout << "Couldn't open file";
 }
 
 struct patron
 {
  string name;
  int sum;
 };
 
 int count;
 f >> count;
 
 cout << count << endl;
 
 patron *M = new patron [count];
 
 for(int i = 0; i < count; i++)
 {
     getline(f,M[i].name);
     f >> M[i].sum;
 }
 
 for(int i = 0; i < count; i++)
 {
  cout << "name: " << M[i].name << " sum: " << M[i].sum << endl;
 }
 
 f.close();
 delete [] M;
 
 return 0;
}
Проблема в том, что вывод получается не таким какой нужен для решения задачи.

4
name: sum: 3226995
name: sum: 1313754953
name: sum: 1936617283
name: sum: 1953724755

Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
А проблема в чем не понимаю.
Так как там имена, состоящие более чем из одного слова, то я использую функцию getline.
Но похоже в поле int считывается, то, что должно находится в строке, поэтому и получаются такие корявые цифры.

Не знаю что делать..

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
 f.get();
 
 for(int i = 0; i < count; i++)
 {
     getline(f,M[i].name);
     f >> M[i].sum;
     f.get();
 }
проблему решил

Добавлено через 1 минуту
Уважаемые адмитисрация!!
У вас форум глючит, почему-то когда я добавляю в исходное сообщение, оно не добавляется, а дублируется и добавляется к дублированному..

Добавлено через 16 минут
администрация
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 11:16     Считать информацию из файла в массив структур
Посмотрите здесь:

C++ Не получается считать информацию из файла в 2-х мерный массив (С++)
Считать массив структур из файла C++
Как считать информацию с файла C++
Считать массив структур из файла C++
C++ Не получается считать из файла информацию
Как считать массив структур из файла txt C++
Считать из бинарного файла в массив структур фамилию, имя, оценку по математике, оценку по информатике C++
Считать информацию из с файла массив посимвольно C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 23:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru