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

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

Войти
Регистрация
Восстановить пароль
 
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
#1

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

21.11.2012, 11:16. Просмотров 461. Ответов 0
Метки нет (Все метки)

Здравствуйте!

Выполняю упражнение из книги Прата "С++ язык"
Суть в том, что нужно из файла считать определенное количество элементов (количество указано в самом начале файла), и записать эти элементы в каждый элемент структуры 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++):

Считать массив структур из файла - C++
//создание файла-записи #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;stdio.h&gt; using namespace std; //Стpуктуpа данных ...

Считать массив структур из файла - C++
Видела похожие темы, но так и не дошло:( В общем, количество структур в файле мне известно. Нужно считать их в массив. Проблема в том,...

Как считать массив структур из файла txt - C++
#include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; struct slug { char...

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

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

Считать из бинарного файла в массив структур фамилию, имя, оценку по математике, оценку по информатике - C++
необходимо считать из бинарного файла в массив структур фамилию, имя, оценку по математике, оценку по информатике, оценку по физике

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2012, 11:16
Привет! Вот еще темы с ответами:

Не получается считать из файла информацию - C++
У меня есть текстовый файл. Мне нужно считать в нем строчки, такого типа: qwert 12345 asdfghjk 213213 tgyhh 39482 Имена...

Как считать информацию с файла - C++
Помогите пожалуйста разобраться с файлами. При считывании из файла в методе void Users::LoadFile() (Файл Users.cpp) попадаю в бесконечный...

Как считать информацию с текстового файла? - C++
Нужна помощь! Мне необходимо создать пользовательскую функцию, которая будет считывать информацию с текстового файла.

getline() (не получается считать информацию с файла) - C++
Здравствуйте. У меня есть файл вида: volleyball 1 sports.ru 500 volleyball football Первая строка - искомый тег, вторая -...


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

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

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