0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 53
1

Вывод из файла в структуру, ошибка в коде С++

15.04.2017, 15:04. Показов 858. Ответов 5
Метки нет (Все метки)

В чем ошибка в коде?
В файле записаны имя и пол в строчку через пробел.
Программа запускается но не вывод структуру.
Буду признателен за помощь. Заранее спасибо


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
struct Structur
{
    char name;
    char pol;
};
int main()
{
    const int n = 4;
    Structur str[n];
    ofstream fout("1.txt");
 
    for (int i = 0; i < n; ++i)
    {
        fout << str[n].name << "" << str[n].pol << "" << endl;
    }
    fout.close();
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2017, 15:04
Ответы с готовыми решениями:

Описать структуру. Ошибка в коде
9. Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя, знак зодиака, дата...

Описать структуру. Ошибка в коде
Нашел ошибку

Реализовать структуру Student (не работает вывод на консоль - найти и исправить ошибки в коде)
Описать структуру с именем STUDENT, содержащую следующие поля:-фамилия и инициалы;-номер...

Поточный вывод из файла в динамическую структуру
Имеется программа,которая берет данные из файла,а именно имя и фамилию,которые надо поместить в...

5
"C with Classes"
1626 / 1386 / 519
Регистрация: 16.08.2014
Сообщений: 5,801
Записей в блоге: 1
15.04.2017, 15:25 2
Дмиттрий,
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
#include<iostream>
#include <fstream>
 
using namespace std;
 
struct Structur
{
  char* name;
  char* pol;
};
int main()
{
  const int n = 4;
  Structur str[n];
  ofstream fout("1.txt");
 
  str[0].name = "name1";
  str[0].pol = "pol1";
 
  str[1].name = "name2";
  str[1].pol = "pol2";
 
  str[2].name = "name3";
  str[2].pol = "pol3";
 
  str[3].name = "name3";
  str[3].pol = "pol3";
 
  for (int i = 0; i < n; ++i)
  {
    fout << str[i].name << " " << str[i].pol << " " << endl;
  }
  fout.close();
}
0
Модератор
Эксперт С++
12780 / 10236 / 6150
Регистрация: 18.12.2011
Сообщений: 27,405
15.04.2017, 15:30 3
_stanislav, Это запись в файл.
А ТС нужно из записанного файла прочитать в массив.
Поэтому структура нужна такая
C++
1
2
3
4
5
struct Structur
{
  char name[100];
  char pol[8];
};
И, соответственно, вывод надо поменять на ввод.
0
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 53
15.04.2017, 15:37  [ТС] 4
Значит вот так должен выглядеть код ?

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
#include<iostream>
#include <fstream>
 
using namespace std;
 
struct Structur
{
    char name[100];
    char pol [4];
};
int main()
{
    const int n = 4;
    Structur str[n];
    ifstream fin ("1.txt");
 
    str[0].name = "name1";
    str[0].pol = "pol1";
 
    str[1].name = "name2";
    str[1].pol = "pol2";
 
    str[2].name = "name3";
    str[2].pol = "pol3";
 
    str[3].name = "name3";
    str[3].pol = "pol3";
 
    for (int i = 0; i < n; ++i)
    {
        fin << str[i].name << " " << str[i].pol << " " << endl;
    }
    fin.close();
}
0
Модератор
Эксперт С++
12780 / 10236 / 6150
Регистрация: 18.12.2011
Сообщений: 27,405
15.04.2017, 15:42 5
Лучший ответ Сообщение было отмечено Дмиттрий как решение

Решение

Нет, не так.
В массивы надо читать данные
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<iostream>
#include <fstream>
 
using namespace std;
 
struct Structur
{
    char name[100];
    char pol [4];
};
int main()
{
    const int n = 4;
    Structur str[n];
    ifstream fin ("1.txt");
    if(fin)
    {
       for (int i = 0; i < n; ++i)
       {
          fin >> str[i].name >> str[i].pol;
          cout << str[i].name << " " << str[i].pol << " " << endl;
       }
       fin.close();
   }else
     cout<<"file not open";
}
1
"C with Classes"
1626 / 1386 / 519
Регистрация: 16.08.2014
Сообщений: 5,801
Записей в блоге: 1
15.04.2017, 15:43 6
Дмиттрий,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include <fstream>
 
using namespace std;
 
struct Structur
{
  char name[100];
  char pol[4];
};
int main()
{
  const int n = 4;
  Structur str[n];
  ifstream fin("1.txt");
 
  for (int i = 0; i < n; ++i)
  {
    fin >> str[i].name >> str[i].pol;
  }
 
  fin.close();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2017, 15:43
Помогаю со студенческими работами здесь

Ввод структуры в текстовый файл столбиком и вывод данных из файла в структуру
Имеется база данных в виде структуры, которая будет постепенно дописываться приблизительно до 1000...

Вывод на экран, ошибка в коде
Всем привет! Хотелось бы обратиться к Вам а помощью. Программист из меня, к сожалению, так себе,...

Ошибка при чтении строк из файла и записывании их в структуру
Задача заключается в том, что у нас есть структура из имени(string), кол-ва(int) и веса(int), мы...

Считать данные из файла в структуру - исправить недочет в коде
Необходимо из файла записать в структуру, а потом вывести. Подскажите что не так делаю #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru