Advertisement
Agrovein

Untitled

Apr 25th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.74 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include <iomanip.h>
  5. #include <fstream>
  6. #include <vcl.h>
  7. using namespace std;
  8. #include <string>
  9. #pragma hdrstop
  10. #pragma argsused
  11. // Создание структуры
  12. struct car
  13. {
  14.         char vlasnuk[15];
  15.         char marka[10];
  16.         char kolir[10];
  17.         int year;
  18. };
  19. main()
  20. {
  21. // Инициализация массива структур и обьъявление переменных
  22.         const C=1000;
  23.         car info[10];
  24.         int kilkavto, i, j;
  25.         cout<<"Vvod info pro avto"<<endl;
  26.         cout<<endl;
  27.         cout<<"Vvedite kol-vo avto dl9 kotorux nyjna BD - ";
  28.         cin>>kilkavto;
  29.         cout<<endl;
  30.         cout<<endl;
  31. //Создание потока (файла) для записи инфо
  32.         ofstream fout("car.txt");
  33. //Ввод инфо в массив структур        
  34.         for(int i=0; i<kilkavto;i++)
  35.         {
  36.                 cout<<"Vvedit Prizvuwe - ";
  37.                 cin>>info[i].vlasnuk;
  38.                 cout<<"Vvedit Rik vupysky avto - ";
  39.                 cin>>info[i].year;
  40.                 cout<<"Vvedit Marky Avto - ";
  41.                 cin>>info[i].marka;
  42.                 cout<<"Vvedit kolir avto - ";
  43.                 cin>>info[i].kolir;
  44.                 cout<<endl;
  45. // Запись массива структур в файл
  46.                 fout << i+1 <<"   "<< std::setw( 15 ) << std::left << info[i].vlasnuk
  47.                         << std::setw( 15 ) << std::left<< info[i].year
  48.                         << std::setw( 15 )<< std::left<< info[i].marka
  49.                         << std::left << info[i].kolir
  50.                         << std::endl;
  51.                 cout<<endl;
  52.         }
  53. //Закрытие потока(файла) для записи      
  54.         fout.close();
  55.  
  56. // Очистка консоли
  57.         system("cls");
  58. // Очистка массива структур (так же ниже подстраховался и пробовал через буферный массив)
  59.         ZeroMemory(&info, sizeof(info));
  60. //Объявление о считывании файла со всемы вытекающими        
  61.         ifstream fin("car.txt");
  62.         fin.open ("car.txt");
  63.         if(!fin.is_open())
  64.         {
  65.                         cout << "error";//
  66.                         return -1;
  67.         }
  68. //Создание шапки полей для вывода        
  69.         std::cout << "#   " << std::setw( 15 ) << std::left << "Prizvuwe"
  70.                         << std::setw( 15 ) << std::left << "Rik vupysky"
  71.                         << std::setw( 15 ) << std::left<< "Marka"
  72.                         << std::left << "Kolir"
  73.                         << std::endl;
  74.         cout<<endl;
  75. //Создание буферного массива (если не очищать основной)        
  76.         car buff[80];
  77. //Цикл на считывание и вывод
  78.         for(i=0; i<kilkavto; i++)
  79.         {
  80. /*Считывание инфо с файла в основной массив info (он очищен) либо буферный buff (он пустой дефолт) В этой строке и заходит мусор*/  
  81.         fin>>info[i].vlasnuk>>info[i].year>>info[i].marka>>info [i].kolir;
  82. //Вывод считанного массива на консоль (тут всё нормально)        
  83.         cout << i+1 <<"   "<< std::setw( 15 ) << std::left << info[i].vlasnuk
  84.                         << std::setw( 15 ) << std::left<< info[i].year
  85.                         << std::setw( 15 )<< std::left<<info[i].marka
  86.                         << std::left << info[i].kolir
  87.                         << std::endl;
  88.         }
  89. /*Пробный блок для вывода на консоль очищенного основного либо пустого буферного массива без считывания из файла - выводит пустые поля (там где int год - выводит 0) - то-есть всё как и должно выводить при пустом. Благо этому и убедился что загагулина происходит именно где-то при считывании из файла*/
  90.      
  91.      /*ifstream fin("car.txt");
  92.         for (j=0; j<5; j++)
  93.         {
  94.               cout << j+1 <<"   "<< std::setw( 15 ) << std::left << info[i].vlasnuk
  95.                         << std::setw( 15 ) << std::left<< info[i].year
  96.                         << std::setw( 15 )<< std::left<< info[i].marka
  97.                         << std::left << info[i].kolir
  98.                         << std::endl;
  99.         } */
  100. //Закрытие файла считывания        
  101.         fin.close();
  102.         getch();
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement