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

Заполнение массива структур из файла и вывод на экран/в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение из файла с++ http://www.cyberforum.ru/cpp-beginners/thread591016.html
почитал темы на форуме например эту,http://www.cyberforum.ru/cpp-beginners/thread60250.html предпоследнее сообщение, по этому примеру сделал свою функцию void FromFile(tovar* tov) { { ifstream myfile("d:\\TovarIn.txt"); myfile.open ("TovarIn.txt");
C++ Целочисленная прямоугольная матрица Дана целочисленная прямоугольная матрица размера m×n. Составить программу, которая находит номер столбца, в котором находится самая длинная серия одинаковых элементов. Помогите пожалуйста с задачей. http://www.cyberforum.ru/cpp-beginners/thread591014.html
Подсчёта произведения элементов целочисленной прямоугольной таблицы C++
Составить программу для подсчёта произведения элементов целочисленной прямоугольной таблицы Y, состоящей из p строк и k столбцов, сумма двух индексов которых есть число чётное. Использовать динамический массив. Помгите пожалуйста
C++ Поменять местами в строке первое и последнее слова
Помогите пожалуйста: Поменять местами в строке первое и последнее слова. Считать, что слова отделены друг от друга пробелом. Добавлено через 12 часов 26 минут Помогите пожалуйста
C++ Удаление лишних пробелов http://www.cyberforum.ru/cpp-beginners/thread591011.html
Помогите пожалуйста с задачей: Разработать алгоритм и программу для удаления лишних пробелов в тексте (лишними считать> 1 пропуска).
C++ Линейные таблицы Составить программу, которая проверяет, расположены ли элементы линейных таблиц В С по возрастанию. Инициализацию, вывод элементов массива, их обработку организовать в отдельных функциях. Помогите пожалуйста подробнее

Показать сообщение отдельно
Kovrik15
2 / 2 / 0
Регистрация: 24.05.2012
Сообщений: 30
31.05.2012, 22:42  [ТС]     Заполнение массива структур из файла и вывод на экран/в файл
Цитата Сообщение от daslex Посмотреть сообщение
Это не функция, это код, который содержит множество функций.
Вы думаете на форуме сборище экстрасенсов? если компилятор пишет ошибки, перепишите их.

Возможно у вас файла нет (В моем коде проверки убраны) и если так, то нужно переписать в коде путь к вашему файлу, добавить необходимые проверки на наличие файла.

Вот вам скрин работы Visual Studio 2005.
да, извините) после того как написал подумал что вы не так поймете)
я имел ввиду только функцию чтения из файла.
вставил в свой код, она не работает...
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <fstream>
#include <string>
using namespace std;
const int n=1;
 
struct tovar
{
    int nomer;
    char naim[10];
    char edizm[10];
    int kolvo;
    int cena;
};
 
 
void vvod(int n,tovar* tov);
//void consol();
void consolVvod(int n,tovar* tov);
void vivodFile(int n,tovar* tov);
void vivodFile();
void vivodEkran(int n,tovar* tov);
//void delElem();
//void clean();
void vyvodElem(int n,tovar* tov);
//void vyvodColich();
//void sdvig();
void FromFile(tovar* tov);
void main()
 
{
    setlocale(LC_ALL,"Russian");
 
    tovar* tov=new tovar[n];
    char deistv;
    //ifstream myfile = new ifstream("TovarIn.txt");
 
 
 
    while (true)
{
    system("cls");      
    cout<<"\n"; 
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  1  |Заполнение очереди:                    |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  2  |Удаление элемента из очереди;          |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  3  |Очистка очереди;                       |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  4  |Вывод элементов содержащихся в очереди;|\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  5  |Вывод количества элементов в очереди;  |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  6  |Сдвиг элементов очереди к началу;      |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  0  |Выход;                                 |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"\n";
cin>>deistv;
switch(deistv)
    {
    case '1': vvod(n,tov);break;
//  case '2': delElem();break;
//  case '3': clean(); break;
    case '4': vyvodElem(n,tov);break;
//  case '5': vyvodColich();break;
//  case '6': sdvig();break;
    case '0': exit(0);
    default : cout <<"\nНеверный ввод, повторите \n";
    system ("pause");
    }
}
    
}
 
 
void vvod(int n,tovar* tov)
{
    
    char vibor;
    cout<< " 1 - с консоли \n";
    cout<< " 2 - из файла \n" ;
    cin>>vibor;
    switch(vibor)
    {
    case '1': consolVvod(n,tov);break;
    case '2': FromFile(tov);break;
    }
}
 
void consolVvod(int n,tovar* tov)
{
 
    //cout<<"Введите размер массива:" ;cin>>n;
//    tovar* tov=new tovar[n];
    for(int i=0;i<n;i++)
    {
        cout<<"Введите номер: ";cin>>tov[i].nomer;
        cout<<"Введите наименование: ";cin>>tov[i].naim;
        cout<<"Введите единици измерения: ";cin>>tov[i].edizm;
        cout<<"Введите количество: ";cin>>tov[i].kolvo;
        cout<<"Введите цену: ";cin>>tov[i].cena;
        cout<<endl;
    }
}
 
void FromFile(tovar* tov,int &size)
 {   
     int i=0;
     char S;
     ifstream myfile("d:\\tovar.txt");
     while (!myfile.eof())
     {
      myfile>>tov[i].nomer;   
      myfile>>S;    //Принудительный переход на след строку с захватом одного символа 
      myfile.seekg(ios::cur-2,1); //Костыль. Был захвачен один символ, возвращаем курсор чуть влево
      myfile.getline(tov[i].naim,10);
      myfile.getline(tov[i].edizm,10);
      myfile>>tov[i].kolvo;
      myfile>>tov[i].cena;
      i++;
     }
      myfile.close();
      size=i-1; //size будет нужен для того чтоб указывать размерность массива
 }
 
 
void vyvodElem(int n,tovar* tov)
{
 
    char VibViv;
    cout<< "Выберите куда выводить элементы \n";
    cout<< "1 - на экран \n";
    cout<< "2 - в файл \n";
    cin>>VibViv;
    switch(VibViv)
    {
    case '1': vivodEkran(n,tov);break;
    case '2': vivodFile(n,tov);break;
    }
}
void vivodEkran(int n,tovar* tov)
{
    cout<<"Список товара:\n";
    for(int i=0;i<n;i++)
    {
      cout<<"Номер товара:     |"<<tov[i].nomer<<";\n";
      cout<<"Наименование:     |"<<tov[i].naim<<";\n";
      cout<<"Еденицы измерения:|"<<tov[i].edizm<<";\n";
      cout<<"Количество:       |"<<tov[i].kolvo<<";\n";
      cout<<"Цена:             |"<<tov[i].cena<<";\n";
      cout<<endl;
    }
    system("pause");
}
void vivodFile(int n,tovar* tov)
{
    FILE *f;
 f=fopen("TovarOut.txt","w");   
for (int i = 0; i < n; i++)
        {
            fprintf(f,"%c Номер товара:     |"); fprintf(f,"%i",tov[i].nomer);
            fprintf(f,"\n");
            fprintf(f,"%c Наименование:     |");fputs(tov[i].naim,f);
            fprintf(f,"\n ");
            fprintf(f,"%c Еденицы измерения:|");fputs(tov[i].edizm,f);
            fprintf(f,"\n ");
            fprintf(f,"%c Количество:       |");fprintf(f,"%i",tov[i].kolvo);
            fprintf(f,"\n ");
            fprintf(f,"%c Цена:             |");fprintf(f,"%i",tov[i].cena);
            fprintf(f,"\n ");
            fprintf(f,"\n ");
        }
fclose(f);
}
kursach1.obj : error LNK2019: unresolved external symbol "void __cdecl FromFile(struct tovar *)" (?FromFile@@YAXPAUtovar@@@Z) referenced in function "void __cdecl vvod(int,struct tovar *)" (?vvod@@YAXHPAUtovar@@@Z)
1>D:\Витя\учёба\курсовая\kursach1\Debug\kursach1.exe : fatal error LNK1120: 1 unresolved externals
вот ошибка.

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