Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
zZzTipo4ekzZz
1 / 1 / 1
Регистрация: 05.05.2012
Сообщений: 159
#1

Считывание из файла по номеру строки - C++

19.05.2015, 14:02. Просмотров 544. Ответов 8
Метки нет (Все метки)

Есть задача получить Event по номеру, из txt файла, то есть выводится такое сообщение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void UpdateFile()
{
    std::cout << "Вывод всех Event:" << std::endl;
    std::string str;
    std::ifstream fs("Events.txt");
    while (getline(fs, str)) std::cout << str << std::endl;
    std::cout << "\n";
}   
 
void GetEventNumber()
{
    std::cout << "Event по номеру:" << std::endl;
 
}
пользователь вводит, к примеру цифру "2", и выводится вторая строка, вводит 5 - выводится "5" строчка, и т.д.
Как это можно реализовать ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2015, 14:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Считывание из файла по номеру строки (C++):

Считывание строки из файла
Что то не врублю, как считать полностью всё содержимое файла и занести его в...

Считывание строки с файла
Подскажите как сделать так чтобы с файла считывало не одну строку а все!...

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

Считывание строки из файла
Здравствуйте Проблема такая: во время считывания строки из файла выносит из...

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

Считывание строки из файла
Пишу что-то типа простой авторизации на c++, нужно взять из файла определенную...

8
zss
Модератор
Эксперт С++
6960 / 6522 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
19.05.2015, 14:14 #2
6 строчку замените на
C++
1
2
3
4
5
6
7
8
9
10
int i=1;
while (getline(fs, str))
{  
    if(i==n)
    {
          std::cout << str << std::endl;
          break;
    }
    i++;
}
0
zZzTipo4ekzZz
1 / 1 / 1
Регистрация: 05.05.2012
Сообщений: 159
19.05.2015, 20:56  [ТС] #3
Цитата Сообщение от zss Посмотреть сообщение
6 строчку замените на
А от куда переменная n ?
0
zss
Модератор
Эксперт С++
6960 / 6522 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
19.05.2015, 21:30 #4
n - номер строки которую надо вывести.
0
zZzTipo4ekzZz
1 / 1 / 1
Регистрация: 05.05.2012
Сообщений: 159
20.05.2015, 09:40  [ТС] #5
Цитата Сообщение от zss Посмотреть сообщение
n - номер строки которую надо вывести.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void GetEventNumber()
{
    std::cout << "Event по номеру:" << std::endl;
 
    std::string str;
    std::ifstream fs("Events.txt");
    int i = 1;
    while (getline(fs, str))
    {
        if (i == n)
        {
            std::cout << str << std::endl;
            break;
        }
        i++;
    }
    std::cout << "\n";
}
так не получается
0
Stanis
52 / 41 / 16
Регистрация: 16.12.2012
Сообщений: 144
20.05.2015, 09:49 #6
Цитата Сообщение от zZzTipo4ekzZz Посмотреть сообщение
так не получается
Так n ввести ведь нужно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void GetEventNumber(int  n) //входной параметр добавь int n
{
    std::cout << "Event по номеру:" << std::endl;
 
    std::string str;
    std::ifstream fs("Events.txt");
    int i = 1;
    while (getline(fs, str))
    {
        if (i == n)
        {
            std::cout << str << std::endl;
            break;
        }
        i++;
    }
    std::cout << "\n";
fs.close();
}
1
kpoxaa
74 / 35 / 1
Регистрация: 03.08.2012
Сообщений: 447
20.05.2015, 10:00 #7
Попробуй по взрослому:
---
0
zZzTipo4ekzZz
1 / 1 / 1
Регистрация: 05.05.2012
Сообщений: 159
20.05.2015, 10:01  [ТС] #8
Цитата Сообщение от Stanis Посмотреть сообщение
Так n ввести ведь нужно
тогда как мне его вывести в int main() ?
C++
1
2
3
4
5
int main()
{
    setlocale(LC_ALL, "Russian");
    GetEventNumber();
}
или если так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    std::cout << "Event по номеру:" << std::endl;
    int  n = 0;
    std::string str;
    std::ifstream fs("Events.txt");
    int i = 1;
    while (getline(fs, str))
    {
        if (i == n)
        {
            std::cout << str << std::endl;
            break;
        }
        i++;
    }
    std::cout << "\n";
    fs.close();
Добавлено через 1 минуту
p.s. всем спасибо, разобрался)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    std::cout << "Event по номеру:" << std::endl;
    int  n;
    std::string str;
    std::ifstream fs("Events.txt");
    int i = 1;
    std::cin >> n;
    while (getline(fs, str))
    {
        if (i == n)
        {
            std::cout << str << std::endl;
            break;
        }
        i++;
    }
    std::cout << "\n";
    fs.close();
0
kpoxaa
74 / 35 / 1
Регистрация: 03.08.2012
Сообщений: 447
20.05.2015, 10:08 #9
Вот так будет правильнее.

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
int main()
{
    setlocale(LC_ALL, "Russian");
 
    std::cout << "Event по номеру:" << std::endl;
    int  n;
    std::cin >> n;
 
    string line = GetEventNumber(n);
    std::cout << line << std::endl;
}
 
string GetEventNumber(int n)
{
    std::string str;
    std::ifstream fs("Events.txt");
    int i = 1;
    
    while (getline(fs, str))
    {
        if (i == n)
        {
            break;
        }
 
        i++;
    }
 
    fs.close();
 
    return str;
}
0
20.05.2015, 10:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2015, 10:08
Привет! Вот еще темы с решениями:

Считывание строки из файла
Доброго времени суток! В программе необходима реализация ввода строки из...

Считывание строки из файла
Здравствуйте. Есть такой класс (это упрощенный тестовый класс): class...

Считывание из файла до конца строки
Нужно написать программу, которая создаёт файл, каждая строка которого содержит...

Считывание строки с текстового файла
Напишите пожалуйстанаброски как можно считать строку с текстового файла ,для...


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

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

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