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

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

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

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

27.01.2011, 10:57. Просмотров 661. Ответов 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++
Имеется много папок в каждой папке есть файл proc.txt, как можно по всем этим папкам пройтись и из каждой папки в этом файле достать...

Вывод информации о файле - C++
Добрый день форумчане. Кто подскажет,суть задачи - вывести информацию о файле. может быть есть какие-то функции которые в этом помогут?...

Вывод всей информации о выбранном файле - C++
if(GetFileInformationByHandle(hf, &amp;lpFileInformation)) cout &lt;&lt; &quot;ИНФОРМАЦИЯ О ВЫБРАННОМ ФАЙЛЕ:&quot; &lt;&lt; ?? использую эту функцию ...

Функция: поиск в файле по ключу и удаление всей информации о стране по ее названию - C++
Доброго времени суток. Есть структура struct CountryInfo { string Country; string Capital; string OfficialLanguage; float...

Поиск в файле и вывод на экран - C++
Имеется txt файл, произвольно заполненный: 01101210 :2 //пустая строка 12434 :8 //пустая строка 0110 :9 //пустая строка

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;
  }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2011, 15:06
Привет! Вот еще темы с ответами:

Поиск в .txt файле и вывод на экран - C++
Такая проблема, необходимо осуществить поиск слова в .txt файле , если данной слово найдено, то распечатать строку с этим словом, и...

Работа с файлами (поиск и вывод чисел в файле) - C++
Как на с++ сделать программу, которая в текстовому файле найдет и выведет на дисплей все числа? Есть ли для этого функции?

Поиск в текстовом файле слова и вывод блока текста, в котором оно встретилось - C++
Здравствуйте! Подскажите пожалуйста как будет выглядеть код мне нужно реализовать поиск по txt файлу в котором записана информация о...

Реализовать поиск значения в файле и вывод на консоль структуры, в которой расположено значение - C++
Как сделать поиск значения в файле и вывод на консоль структуры, в которой расположено значение?


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

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

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