Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Danilka144
Сообщений: n/a
#1

Поиск информации в файле и ее вывод - C++

27.01.2011, 10:57. Просмотров 612. Ответов 1
Метки нет (Все метки)

Привет. Создан текстовый файл, в котором содержится информация о марках автомобилей. Выводить все данные на форму по запросу и в виде списка.
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <cstdio>
#include <fstream>
#include <string>
#include <stdlib.h>
#include <conio.h>
using namespace std;
 
bool password();
int menu();
int enter();
int display();
int remove_file();
 
int main()
{
    setlocale(LC_ALL,"Russian");
    char choice;
    if(password()) cout<<"Dobro pozhalovat'\n";
    else 
    {
        cout<<"Nevernoe imya ili parol'\n";
        return 0;
    }
    for(;;)
    {
        choice=menu();
        switch(choice)
        {
            case 'e':enter();
                break;
            case 'd':display();
                break;
            case 'r':remove_file();
                break;
            case 'q':
                return 0;
        }
    }
}
 
//Имя и пароль
bool password()
{
    char imja[50], pass[50];
    int temp=0;
    cout<<"Vvedite imja\n";
    gets(imja);
    cout<<"Vvedite parol'\n";
    gets(pass);
    if(strcmp(imja,"Danil")) temp=1;
    if(strcmp(pass,"Danil")) temp=1;
    if(temp==1) return false;
    else return true;
}
//Меню
int menu()
{
    char ch;
    cout<<"\n**************"<<endl;
    do
    {
        cout<<"(E)nter\n";
        cout<<"(D)isplay\n";
        cout<<"(R)emove\n";
        cout<<"(Q)uit\n";
        cout<<"Vybirite komandu: ";
        cin>>ch;
    }
    while(!strchr("edraq", tolower(ch)));
    return tolower(ch);
}
//Добавление
int enter()
{
    char nazvanie[40]; int god, tsena; char tsvet[15];
    cout<<"Vvedite nazvanie, god vipyska, tsena, tsvet\n";
    cin>>nazvanie>>god>>tsena>>tsvet;
    //Открытие файла
    ofstream file("test.txt", ios::out | ios::binary | ios::app);
    if (!file)
    {
        cout<<"Ne udaetsa otkryt' fail\n";
        return 1;
    }
    file<<endl<<nazvanie<<" "<<god<<" "<<tsena<<" "<<tsvet<<" ";
    file.close();
    return 0;
}
//Вывод информации из файла
int display()
{
    char ch;
    //Открытие файла
    ifstream file("test.txt", ios::in | ios::binary);
    if (!file)
    {
        cout<<"Ne udaetsa otkryt fail'\n";
        return 1;
    }
    while(!file.eof())  //Poka ne naiden konec faila, vyvod na ekran
    {
        file.get(ch);
        if(!file.eof()) cout<<ch;
    }
    file.close();
    return 0;
}
 
//Удаление записи
int remove_file()
{
    char temp[256];
    char udal[256];
    cout<<"Vvedite nazvanie:\n";
    cin >> udal;
    ifstream in ("test.txt", ios::in | ios::binary);
    ofstream out("testnew.txt", ios::out | ios::binary);
    while(!in.eof()) 
    {
        in.getline(temp,256);
        int i=0;
        char str[256]={0};
        for(;;)
        {
            if((temp[i]==' ')||(temp[i]=='\0')) break;
            else str[i]=temp[i];
            ++i;
        }
        if(!strcmp(str,udal)) break;
        out<<temp<<endl;
    }
    while(!in.eof()) 
    {
        in.getline(temp,255);
        out<<temp<<endl;
    }
    out.close();
    in.close();
    remove("test.txt");
    rename("testnew.txt","test.txt");
    return 0;
}
Сделано, всё верно. Теперь нужно добавить:
Вывести информацию о моделях, которые выпускались в М году, найти среднюю стоимость автомобилей, которые выпускались в году N.
Как это сделать? Спасибо.
Вот сам файл: test.txt
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2011, 10:57     Поиск информации в файле и ее вывод
Посмотрите здесь:

Поиск в файле и вывод на экран C++
C++ Изъятие информации в файле из скобок
C++ Перезапись части информации в файле
C++ Вывод информации о файле
Получение информации о файле C++
C++ Работа с файлами (поиск и вывод чисел в файле)
Поиск в текстовом файле слова и вывод блока текста, в котором оно встретилось C++
C++ Реализовать поиск значения в файле и вывод на консоль структуры, в которой расположено значение
Перемещение информации в файле в произвольное место C++
Изменение информации в текстовом файле C++
Вывод всей информации о выбранном файле C++
C++ Поиск в .txt файле и вывод на экран

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
27.01.2011, 15:06     Поиск информации в файле и ее вывод #2
вы что-нибудь слышали о классах, структурах, пользовательских типах данных? Создайте класс машина и в нем соответствующие поля. Код станет намного читабельнее, а решение ваших вопросов очевиднее.
Вывести информацию о моделях, которые выпускались в М году
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <fstream>
#include <sstream>
 
void search_by_year(int syear, std::string filename) 
{
  std::ifstream in (filename.c_str(), std::ios::in | std::ios::binary);
  while (!in.eof())
  {
    std::string str,tmp;
    int year=0;
    std::getline(in,str);
    std::istringstream iss(str);
    in >> tmp >> year;
    if(year==syear) std::cout << str;
  }
}
Yandex
Объявления
27.01.2011, 15:06     Поиск информации в файле и ее вывод
Ответ Создать тему
Опции темы

Текущее время: 11:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru