Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "stdio.h"
- #include <iostream>
- #include <string>
- #include <string.h>
- #include <iomanip>
- #include <io.h>
- #include <Windows.h>
- using namespace std;
- #define _CRT_SECURE_NO_WARNINGS
- char* sozdanie(char*, FILE*);
- char* zapis(char*, FILE*);
- char* read(char*, FILE*);
- char* text(char*, char*,FILE*);
- struct rasp
- {
- int number;
- double otpr;
- char mesto[50];
- double prib;
- }avtobus,*spisok;
- int main()
- {
- char txtfname[100];
- char filename[100];
- strcpy(filename, "lala");
- FILE *fl = NULL;
- /*bool bp = true;
- do
- {
- switch (menu())
- {
- case 1: cout << endl << "imya faila: " << sozdanie(filename, fl) << endl << endl; break;
- case 2: cout << endl << "imya faila: " << zapis(filename, fl) << endl << endl; break;
- case 3: cout << endl << "imya faila: " << read(filename, fl) << endl << endl; break;
- case 4: cout << endl << "imya txtfaila: " << text(txtfname, filename, fl) << endl << endl; break;
- case 5: bp = false; break;
- default: cout << "Nepravilniy vibor."; break;
- }
- */} while (bp);
- return 0;
- }
- //меню
- int menu()
- {
- cout << "Vybirite: " << endl;
- cout << "1. Sozdat' binarnii fail" << endl;
- cout << "2. Zapisat dannie v fail" << endl;
- cout << "3. Otkrit fail, prochitat, vivesti resultat" << endl;
- cout << "4. Vivesti v txt fail" << endl;
- cout << "5. Exit" << endl;
- int i;
- cin >> i;
- return i;
- }
- char* sozdanie(char* filename, FILE* fl)
- {
- cout << "Vvedite nazvanie faila: ";
- gets_s(filename, 100);
- strcat(filename, ".txt");//соединяет две строки
- fl = fopen(filename, "w");
- if ((fl = fopen(filename, "wb")) == NULL)
- {
- cout << "Oshibka pri sozdanii" << endl;
- filename = "oshibka";
- }
- fclose(fl);
- return filename;
- }
- char* zapis(char* filename, FILE* fl)
- {
- if ((fl = fopen(filename, "ab")) == NULL)
- {
- return "oshibka pri otkritii";
- }
- char ch;
- do
- {
- cout << "Vvedite nomer poezda: "; cin >> avtobus.number;
- cout << "Vvedite vremya otpravleniya: "; cin >> avtobus.otpr;
- rewind(stdin);
- cout << "Vvedite punkt naznacheniya: "; gets_s(avtobus.mesto, 19);
- cout << "Vvedite vremya pribytiya: "; cin >> avtobus.prib;
- fwrite(&avtobus, sizeof(rasp), 1, fl);
- cout << endl << "Prodolzhit vvod? y/n: ";
- cin >> ch;
- cout << endl;
- } while (ch != 'n');
- fclose(fl);
- return filename;
- }
- char* read(char* filename, FILE* fl)
- {
- if ((fl = fopen(filename, "rb")) == NULL)
- {
- return "Oshibka pri otkritii";
- }
- //int n = _filelength(_fileno(fl)) / sizeof(rasp);
- //for (int i = 0; i < n; i++)
- {
- fread(&avtobus, sizeof(rasp), 1, fl);//чтение из файла
- rewind(stdin);
- printf("%d, %f, %s, %f\n", avtobus.number, avtobus.otpr, avtobus.mesto, avtobus.prib);
- }
- fclose(fl);
- return filename;
- }
- char* text(char* txtfname, char* filename, FILE* fl)
- {
- FILE *ft;
- cout << "Vvedite textfile name: ";
- rewind(stdin);
- gets_s(txtfname, 29);
- if ((ft = fopen(txtfname, "w")) == NULL)
- return "Oshibka pri sozdanii textovogo faila.";
- if ((fl = fopen(filename, "rb")) == NULL)
- {
- remove(txtfname);
- return "Oshibka pri otkritii.";
- }
- //int n = _filelength(_fileno(fl)) / sizeof(rasp);
- //for (int i = 0; i < n; i++)
- {
- fread(&avtobus, sizeof(rasp), 1, fl);
- fprintf(ft, "%d\n %f\n %s\n %f\n\n", avtobus.number, avtobus.otpr, avtobus.mesto, avtobus.prib);
- }
- fclose(fl);
- fclose(ft);
- return txtfname;
- }
Add Comment
Please, Sign In to add comment