Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 1, средняя оценка - 4.00
Jaksn
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
#1

Чтение и поиск по файлу - C++

29.04.2011, 19:20. Просмотров 643. Ответов 7

Народ помогите пожалуйста! В универе дали такую задачу на C++. В текстовом файле содержутся фамилии учеников и их оценки. Например: Иванов 4, 5, 4. Фамилии с оценками пишутся в столбик. Мне нужно сделать так, чтобы я вводил с клавиатуры фамилию и на экран выходила эта фамилия с соответствующими оценками. Я уже всю голову сломал, а сделать не могу. Я понимаю как записать в файл и считать оттуда текст, но чтобы имя вводить с клавы и все работало так, как в задаче я не могу. Помогите очень прошу!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2011, 19:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение и поиск по файлу (C++):

Путь к файлу и чтение матрицы символов - C++
Задача в чтении матрицы символов из файла. ifstream F; F.open("C:\\Users\\ss\\Desktop\\C++\\Programm_2s\\Debug\\1.txt"); Как...

Поиск по файлу c++ - C++
Есть файл примерно такого содержания: Петров 5 Иванов 4 Сидоров 5 Васильев 5 Стоит задача узнать сколько учеников с оценкой...

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

Поиск по текстовому файлу - C++
Здравствуйте! Очень прошу помочь со следующим заданием (насколько я поняла, это должен быть поиск отдельных символов/слов/фраз в большом...

Поиск по файлу слова - C++
И так у меня есть волшебный код. Он открывает файлы от 1 до 19 и ищет то слово которое в ковычках. Нужно чтоб искал то слово которое...

Вроде бы банальный поиск по файлу, но - C++
Добрый день. Как и говорилось в заголовке, почему то, не работает банальный поиск в бинарном файле: void search (FILE *f,char* k) { ...

7
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
29.04.2011, 19:32 #2
Читайте построчно файл, и проверьте слово до первого пробела - это и будет ваша фамилия... Если все нормально, печатайте всю строку!
1
Jaksn
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
29.04.2011, 19:42  [ТС] #3
Смысл ясен, но я не понимаю как это реализовать.
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
29.04.2011, 21:02 #4
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
#include <iostream>
#include <fstream>
#include <string>
#include <cassert>
 
void CheckFile (std::string Surname0)
{
    std::ifstream FileInput ("input.txt", std::ifstream::in);
    assert(FileInput);
    std::string StringFile, StringFileSurname;
    short int NumberPerson = 0;
    while (FileInput)
    {
        std::getline(FileInput, StringFile);
        StringFileSurname.append(StringFile, 0, StringFile.find(" "));
        if (StringFileSurname == Surname0)
        {
            std::cout << StringFile << std::endl;
            NumberPerson++;
        }
        StringFileSurname.clear();
    }
    FileInput.close();
    if (NumberPerson == 0)
        std::cout << "Not found!" << std::endl;
}
 
int main()
{
    std::string Surname;
    std::cout << "enter the name [> ";
    std::getline(std::cin, Surname);
    CheckFile(Surname); 
    std::cin.get();
    return 0;
}
Добавлено через 9 минут
В этом коде я не акцентировал внимание на регистр фамилии! Писал для стандартной подписи "Surname"!
2
Jaksn
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
29.04.2011, 23:45  [ТС] #5
Мне вообщето на C++ надо, но все равно огромное спасибо, на С++ сам переведу.
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.04.2011, 23:49 #6
Цитата Сообщение от Jaksn Посмотреть сообщение
Мне вообщето на C++ надо,
Так код выше и есть на С++, во всей его красоте.
1
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
30.04.2011, 00:09 #7
Еще вариант.

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
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
 
std::vector<std::string> fill_cont_from_file(const std::string& file_name)
{
    std::vector<std::string> result_vec;
    std::ifstream ifs(file_name.c_str());
    if(!ifs)
    {
        std::cerr << "Error with open file: " << file_name << '\n';
        return result_vec;
    }
    while(!ifs.eof())
    {
        std::string string;
        std::getline(ifs, string);
        result_vec.push_back(string);
    }
    return result_vec;
}
 
int main()
{
    std::string file_name;
    std::cout << "Enter file_name: ";
    std::cin >> file_name;
    std::vector<std::string> vec = fill_cont_from_file(file_name);
           if(vec.empty())
           {
                std::cout << "File is empty\n";
                return 1;
           }
    std::string surname;
    std::cout << "Enter surname: ";
    std::getline(std::cin, surname);
    std::vector::const_iterator iter = std::find_if(vec.begin(), vec.end(),
        [surname](const std::string& str)
    {
        std::stringstream ist(str);
        std::string tmp;
        ist >> tmp;
        return tmp == str;
    });
           if(iter != vec.end())
              std::cout << *iter <<'\n';
    return 0;
}
1
Jaksn
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
30.04.2011, 00:15  [ТС] #8
Цитата Сообщение от asics Посмотреть сообщение
Так код выше и есть на С++, во всей его красоте.
Я просто только начал изучать язык, поэтому мне мало что понятно из того что есть в коде. Я вот поначалу и подумал что это на С.
0
30.04.2011, 00:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2011, 00:15
Привет! Вот еще темы с ответами:

Файл: Поиск по текстовому файлу - C++
как сделать чтобы мы вводим текст а пограмка ищет совпадения с словами которые есть в текстовику? Добавлено через 18 секунд надеюсь...

Реализовать поиск по текстовому файлу - C++
В общем пытаюсь написать программу. Суть такая. Есть форма для заполнения. 6 EditControl и 1 ComboBox. создал кнопку для записи в файл этих...

Поиск по .txt файлу (RSS) - C++
Доброго времени суток. Пытаюсь придумать что-нибудь, чтобы работать с RSS без крутых кодов, что-то типа индусского кода. Сделал парсинг...

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


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

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

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