Структура
C++ |
1
2
3
4
5
6
7
8
| struct Stores
{
int Number;
char Title[20];
char Director[40];
int Staff;
int Income;
}; |
|
Ввод с клавиатуры. Вводит вроде бы правильно. Периодически выдает Static_stack.exe вызвал срабатывание точки останова.
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
| void InputConsole(Stores a[], int length)
{
cout << "-----------------------" << endl;
for (int i(length); i >0; i--)
{
cout << 21-i << ":\n";
cout << "Введите номер магазина: ";
while (!(cin >> a[i].Number) || a[i].Number <= 0 || a[i].Number >= 1000000)
{
cout << "Ошибка ввода! Повторите!\n\n";
cout << "Введите номер магазина: ";
cin.clear();
while (cin.peek() != '\n') cin.get();
}
cout << "Введите название магазина: ";
cin.get();
cin.getline(a[i].Title, 20);
cout << "Введите Ф.И.О директора: ";
cin.get();
cin.getline(a[i].Director, 40);
cout << "Введите количество сотрудников магазина: ";
while (!(cin >> a[i].Staff) || a[i].Staff <= 0 || a[i].Staff >= 1000000)
{
cout << "Ошибка ввода! Повторите!\n\n";
cout << "Введите количество сотрудников магазина: ";
cin.clear();
while (cin.peek() != '\n') cin.get();
}
cout << "Введите годовой доход: ";
while (!(cin >> a[i].Income) || a[i].Income <= 0)
{
cout << "Ошибка ввода! Повторите!\n\n";
cout << "Введите годовой доход: ";
cin.clear();
while (cin.peek() != '\n') cin.get();
}
}
MainMenu();
} |
|
Ввод из файла. Вводит кучу букв Н
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
| void InputFile(Stores a[], int length)
{
char filename[80];
cout << "\nВведите имя файла (чтобы файл сохранился не в текущий каталог надо написать полное имя файла): ";
cin >> filename;
ifstream fin(filename); // Связываем файл с потоком вывода в файл
if (!fin)
{
cout << "Файл не найден" << endl;// Проверка файла на существование
}
else
{
for (int i(length); i > 0; i--)
{
char S;
while (!fin.eof() && i<length)
{
fin >> a[i].Number;
fin >> S; //Принудительный переход на след строку с захватом одного символа
fin.seekg(ios::cur - 2, 1); //Костыль. Был захвачен один символ, возвращаем курсор чуть влево
fin.getline(a[i].Title, 20);
fin.getline(a[i].Director, 40);
fin >> a[i].Staff;
fin >> a[i].Income;
delete[] store;
}
}
}
MainMenu();
} |
|
Выводит не то что внасилось
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| void ShowConsole(const Stores a[], int length)
{
cout << "Магазины:\n";
cout << "----------------------------\n";
for (int i(0); i < length; i++)
{
cout << 20-i << " магазин:\n";
cout << "Номер (ключ): " << a[i].Number << endl;
cout << "Название: <<" << a[i].Title << ">>" << endl;
cout << "Ф.И.О. директора: " << a[i].Director << endl;
cout << "Кол-во сотрудников: " << a[i].Staff << endl;
cout << "Годовой доход: " << a[i].Income << "$" << endl;
cout << "----------------------------";
cout << endl;
}
_getch();
} |
|