Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
1 / 1 / 1
Регистрация: 11.06.2012
Сообщений: 34
1

Работа с файлами(Запись,чтение,работа с данными)

13.06.2013, 23:02. Просмотров 4452. Ответов 2
Метки нет (Все метки)

Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны:
— номер рейса;
— тип автобуса;
— пункт назначения;
— время отправления и время прибытия на конечный пункт.
Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени.

Продвинулся только что бы записать что либо в файл.
Код:
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
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
 
    ofstream File("file.dat", ios::out);
    if(! File){
        cerr<<"Файл не может быть открыт"<<endl;
        exit(1);
    }
 
    cout<<"Введите номер рейса, тип автобуса,пункт назначения,время отправления, время прибытия."<<endl;
    cout<<"Введите EOF для окончания ввода."<<endl<<"? ";
 
    int numb;
    char tip[10];
    char punkt[10];
    float time;
    float time1;
 
    while(cin>>numb>>tip>>punkt>>time>>time1){
        File<<numb<<' '<<tip<<' '<<punkt<<' '<<time<<' '<<time1<<endl;
        cout<<"? ";
    }
 
        
 
    return 0;
}

Вот, понятия не имею как считать обратно в переменные и дальше работать с ними.. Прошу помочь и растолковать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2013, 23:02
Ответы с готовыми решениями:

Работа с ключами реестра: Создание, чтение, запись
Возник вопрос, какая самая простая и надёжная функция для работы с ключами реестра существует?...

Работа с файлами
Всем добрый вечер! Есть задание : Дан текстовый файл f. Исключить все пробелы, стоящие в концах...

Работа с файлами в C++
Имеется такая программа, которая считывает числа из файла и выводит их на экран: #include...

Работа с файлами
Привет. Я новичок,так что извиняюсь за глупый вопрос.Написал прогу,не работает верно. Надо...

2
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
14.06.2013, 01:16 2
клац
второй клац
третий клац
остальное сам найдешь .
2
1 / 1 / 1
Регистрация: 11.06.2012
Сообщений: 34
27.06.2013, 00:38  [ТС] 3
Немного исправился..
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
struct infa
{
    int nomer;
    char tip[20];
    char punkt[20];
    int vr_ot, vr_pr;
} bf;
 
void show ()
{
cout <<"nomer: "<< bf.nomer << endl
<<"tip: "<< bf.tip << endl
<<"punkt: "<< bf.punkt << endl
<<"vremya ot: "<< bf.vr_ot << endl
<<"vremya pr: "<< bf.vr_pr << endl
<< "-------------------" << endl;
}   
 
void set ()
{
cout << "vvedite nomer: ";
cin >> bf.nomer;
cout << "vvedite tip: ";
cin >> bf.tip;
cout << "vvedite punkt: ";
cin >> bf.punkt;
cout << "vvedite vremya otpravleniya: ";
cin >> bf.vr_ot;
cout << "vvedite vremya pribitiya: ";
cin >> bf.vr_pr;
}
 
int main()
{
FILE *f;
if ( (f = fopen ("c:\\file.txt", "rb")) != 0 )               //создание чтение 
      f = fopen ("c:\\file.txt", "ab+");                     //окрыть добав
else 
      f = fopen ("c:\\file.txt", "wb+");                     // вывод
 
cout << "1 - zapishet infy\n2 - pokazat vsy infy\n3 - zadanie\n";
short int sel;
cin >> sel;
switch (sel)
    {
    case 1 : 
    {
        int count;
        cout << "Kol-vo zapiseu\? :";
        cin >> count;
        for (int i=0; i<count; i++)
        {
            set();
            fwrite (&bf, sizeof(infa), 1, f);   // запись / чтение  __что именно__, _размер_ вычисляем размер - сумму всех полей __кол-во раз, куда- в файл.
        }
    }; break;
 
    case 2 :
    {
        while (feof(f) == 0)
        {
            fread (&bf, sizeof (infa), 1, f);
            show ();
        }
    }; break;
 
    case 3 :
    {
        int nomer;
        int vr_ot, vr_pr;
        char *tip = new char;
        char *punkt= new char;
        cout<<"vvedite punkt: "; cin>>punkt; 
        cout<<"vvedite vremya pribitiya: "; cin>>vr_pr; 
        fread(&bf, sizeof (infa), 1, f);
        while (feof(f) == 0)
        {
            fread(&bf, sizeof (infa), 1, f);
            if ( (punkt == bf.punkt) && (vr_pr < bf.vr_pr) )
            {
                nomer = bf.nomer; 
                tip = bf.tip;
                punkt = bf.punkt;
                vr_ot = bf.vr_ot;
                vr_pr = bf.vr_pr;
            }     
        }
        cout << nomer << endl; 
        cout << tip << endl;
        cout << punkt << endl;
        cout << vr_ot << endl;
        cout << vr_pr <<endl;
    }; break;
    }
Прошу помочь с заданием(это цифра 3). Я что-то не так делаю..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2013, 00:38

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

работа с файлами
Введите с клавиатуры 10 чисел и запишите в файл все нечетные числа кратные 3, после чего выведите...

Работа с файлами
Помогите, пожалуйста, решить вот такую задачу. Заранее премного благодарна. Дан файл F,...

Работа с файлами
Значит, задача - записать в файл переменную типа CUser, заданного ранее как структура, состоящая из...

Работа с файлами
Привет всем. Для решения своей проблемы использовал поиск по форуму но ничего достойного не нашел,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.