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

Поиск в текстовом файле - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Аналог функции в Visual Studio http://www.cyberforum.ru/cpp-beginners/thread829443.html
cout << endl.....как записать это для Visual Studio
C++ std::string variable.data() обрезает содержимое строки Всем доброй ночи // read a file into memory #include <iostream> // std::cout #include <fstream> // std::ifstream #include <curl/curl.h> #include <curl/easy.h> #include <string> http://www.cyberforum.ru/cpp-beginners/thread829432.html
C++ как вывести матрицу
матрица: 2 столбца и 11 строк...
C++ Пожалуйста найдите ошибку в Конечном Автомате на С++
Помогите найти ошибку в Конечном Автомате на С++ для: а*b*с*(d|f)+n*h* . Может даже и не верна введена таблица для исходного выражения. #include "stdafx.h" #include "iostream" #include "string.h" using namespace std; void main() { int j;
C++ Эрор при компиляции http://www.cyberforum.ru/cpp-beginners/thread829426.html
Здраствуйте) Знаю что вопрос смешной, но все-таки.................. Я вот компилирую программу, студия показывает что все хорошо) Как только нажимаю Сtrl+F5, выполнить построение так оно выдает ошибку. В чем собственно дело?????????? #include <iostream> using namespace std; int main() { cout << "Hello, world!";
C++ Определить, сколько раз каждое число используется в массиве Вот код: #include <iostream> using namespace std; int main() { //двухмерный массив int numbers = {{1, 2, 7} , {2, 5, 3}, {1, 9, 4}, {2, 6, 5}, {7, 2, 2}}; подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2013, 00:03     Поиск в текстовом файле
Если по нормальному делать, то в файле должно быть так:

Плотник
32
22
бывалый
Столяр
42
20
опытный
Каменщик
52
25
бывалый

В файл не нужно лишнее писать, он нужен для хранения информации. При этом облегчается чтение из файла.
В этом случае, записывать в файл нужно, как у вас в коде (только без табуляций), а код для чтения изменить и упростить (уже не нужно будет пропускать первое слово в каждой строке).

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
#include <fstream>
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
struct work
{
    string name;
    unsigned int intensity;
    unsigned int time;
    string qualification;
};
 
int main()
{
    setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    ifstream fin("works.txt");
    if (!fin.is_open())
    {
        cerr << "Error!" << endl;
        system("pause");
        return 1;
    }
    
    cout << "Введите имя для поиска: ";
    string name;
    cin >> name;
 
    work temp;
    
    while (true)
    {
        fin >> temp.name;
        if (fin.eof()) break;
        fin >> temp.intensity;
        fin >> temp.time;
        fin >> temp.qualification;
        if (temp.name == name) break;
    }
    if (!fin.eof())
    {
        cout << temp.name          << endl;
        cout << temp.intensity     << endl;
        cout << temp.time          << endl;
        cout << temp.qualification << endl;
    }
    else cout << "Имя не найдено!" << endl;
    
    cout << endl;
    system("pause");
    return 0;
}
 
Текущее время: 14:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru