Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <stdio.h>
- #include <iomanip.h>
- #include <fstream>
- #include <vcl.h>
- using namespace std;
- #include <string>
- #pragma hdrstop
- #pragma argsused
- // Создание структуры
- struct car
- {
- char vlasnuk[15];
- char marka[10];
- char kolir[10];
- int year;
- };
- main()
- {
- // Инициализация массива структур и обьъявление переменных
- const C=1000;
- car info[10];
- int kilkavto, i, j;
- cout<<"Vvod info pro avto"<<endl;
- cout<<endl;
- cout<<"Vvedite kol-vo avto dl9 kotorux nyjna BD - ";
- cin>>kilkavto;
- cout<<endl;
- cout<<endl;
- //Создание потока (файла) для записи инфо
- ofstream fout("car.txt");
- //Ввод инфо в массив структур
- for(int i=0; i<kilkavto;i++)
- {
- cout<<"Vvedit Prizvuwe - ";
- cin>>info[i].vlasnuk;
- cout<<"Vvedit Rik vupysky avto - ";
- cin>>info[i].year;
- cout<<"Vvedit Marky Avto - ";
- cin>>info[i].marka;
- cout<<"Vvedit kolir avto - ";
- cin>>info[i].kolir;
- cout<<endl;
- // Запись массива структур в файл
- fout << i+1 <<" "<< std::setw( 15 ) << std::left << info[i].vlasnuk
- << std::setw( 15 ) << std::left<< info[i].year
- << std::setw( 15 )<< std::left<< info[i].marka
- << std::left << info[i].kolir
- << std::endl;
- cout<<endl;
- }
- //Закрытие потока(файла) для записи
- fout.close();
- // Очистка консоли
- system("cls");
- // Очистка массива структур (так же ниже подстраховался и пробовал через буферный массив)
- ZeroMemory(&info, sizeof(info));
- //Объявление о считывании файла со всемы вытекающими
- ifstream fin("car.txt");
- fin.open ("car.txt");
- if(!fin.is_open())
- {
- cout << "error";//
- return -1;
- }
- //Создание шапки полей для вывода
- std::cout << "# " << std::setw( 15 ) << std::left << "Prizvuwe"
- << std::setw( 15 ) << std::left << "Rik vupysky"
- << std::setw( 15 ) << std::left<< "Marka"
- << std::left << "Kolir"
- << std::endl;
- cout<<endl;
- //Создание буферного массива (если не очищать основной)
- car buff[80];
- //Цикл на считывание и вывод
- for(i=0; i<kilkavto; i++)
- {
- /*Считывание инфо с файла в основной массив info (он очищен) либо буферный buff (он пустой дефолт) В этой строке и заходит мусор*/
- fin>>info[i].vlasnuk>>info[i].year>>info[i].marka>>info [i].kolir;
- //Вывод считанного массива на консоль (тут всё нормально)
- cout << i+1 <<" "<< std::setw( 15 ) << std::left << info[i].vlasnuk
- << std::setw( 15 ) << std::left<< info[i].year
- << std::setw( 15 )<< std::left<<info[i].marka
- << std::left << info[i].kolir
- << std::endl;
- }
- /*Пробный блок для вывода на консоль очищенного основного либо пустого буферного массива без считывания из файла - выводит пустые поля (там где int год - выводит 0) - то-есть всё как и должно выводить при пустом. Благо этому и убедился что загагулина происходит именно где-то при считывании из файла*/
- /*ifstream fin("car.txt");
- for (j=0; j<5; j++)
- {
- cout << j+1 <<" "<< std::setw( 15 ) << std::left << info[i].vlasnuk
- << std::setw( 15 ) << std::left<< info[i].year
- << std::setw( 15 )<< std::left<< info[i].marka
- << std::left << info[i].kolir
- << std::endl;
- } */
- //Закрытие файла считывания
- fin.close();
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement