Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2023, 11:52   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье Прочитать файл построчно

Здравствуйте!
Пытаюсь прочитать файл txt построчно, но как только программ доходит до цикла while, то завершает свою работу.
Подскажите, пожалуйста, что я ни так сделал?
Код:
    string path = "list_template_channel.txt"; // путь к файлу
    fstream file_list_template;
    file_list_template.open(path, fstream::in); 
 
    if (!file_list_template.is_open()) 
    {
        while (getline(file_list_template, current_template_channel_name)) 
        {
           //...
        }
}

Последний раз редактировалось Женя32; 30.06.2023 в 14:37.
Женя32 вне форума Ответить с цитированием
Старый 30.06.2023, 13:17   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну вы же читаете из файла только, когда не удалось его открыть.
p51x вне форума Ответить с цитированием
Старый 30.06.2023, 14:33   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну вы же читаете из файла только, когда не удалось его открыть.
Почемуй-то?
Так мы проверяем что во время открытия файла не возникло ошибок.
Код:
if (!file_list_template.is_open())
Женя32 вне форума Ответить с цитированием
Старый 30.06.2023, 14:42   #4
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Полный код программы.
Код:
    
#include <conio.h>
#include <iostream>
#include <string>     
#include <fstream> 
 
int main()
{
    string str_my_file;
    fstream my_file;
    my_file.open("list_channel.txt", fstream::in); // открываем файл на чтения, для этого указываем параметр - in режим открытие файла
    
    if (!my_file.is_open()) //  Проверяем, что при открытии файла list_channel.txt не возникло ошибок
    {
        while (getline(my_file, str_my_file))  // начинаем читать файл list_channel.txt 
        {
            cout << str_my_file << endl; // выводим на консоль считанную строку файла
        }
    }
    _getch(); 
    return 0; 
}
Женя32 вне форума Ответить с цитированием
Старый 30.06.2023, 14:58   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Так мы проверяем что во время открытия файла не возникло ошибок.
С какого перепугу?
https://en.cppreference.com/w/cpp/io...stream/is_open
Цитата:
Checks if the file stream has an associated file.

Effectively calls rdbuf()->is_open().
https://en.cppreference.com/w/cpp/io...ilebuf/is_open
Цитата:
Returns true if the most recent call to open() succeeded and there has been no call to close() since then.
Да даже тупуой перевод is_open -> открыт ли?

Ошибки это fail или bad.
p51x вне форума Ответить с цитированием
Старый 30.06.2023, 14:59   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Что, по-вашему, должен вернуть is_open() ?
waleri вне форума Ответить с цитированием
Старый 30.06.2023, 16:44   #7
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Я прошел по Вашей ссылки, и там также в примере показано.
Код:
  if (!fs.is_open())
    {
        fs.clear();
        fs.open(filename, std::ios::out);
        std::cout << "fs.is_open() = " << fs.is_open() << '\n';
    }
Possible output:
Цитата:
fs.is_open() = true
Вот на этом видео тоже самое.
https://youtu.be/bTysglLJ8No?t=315
Женя32 вне форума Ответить с цитированием
Старый 30.06.2023, 18:13   #8
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Вот на этом видео тоже самое.
Серьёзноо-о? Либо кто-то занимается не по способностям либо одно из двух.
Изображения
Тип файла: jpg screenshot.3.jpg (66.3 Кб, 0 просмотров)
Тип файла: png s.png (54.7 Кб, 12 просмотров)
jillitil вне форума Ответить с цитированием
Старый 30.06.2023, 18:31   #9
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от jillitil Посмотреть сообщение
Серьёзноо-о? Либо кто-то занимается не по способностям либо одно из двух.
Уберите логическое не (!) и попробуйте вывести данные из файла на консоль.
Женя32 вне форума Ответить с цитированием
Старый 30.06.2023, 19:14   #10
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
Сообщение

Цитата:
Уберите логическое не (!) и попробуйте вывести данные из файла на консоль.
Йаволь!
Ваш ход!
Изображения
Тип файла: jpg screenshot.4.jpg (51.6 Кб, 0 просмотров)
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прочитать PNG-файл BonBonita Общие вопросы по Java, Java SE, Kotlin 12 12.07.2016 16:55
C++. Прочитать файл и вывести в другой файл каждую N-ую строку Straiker Помощь студентам 3 15.12.2009 05:49
Как прочитать файл?) TwiX Общие вопросы C/C++ 2 13.09.2009 22:55
как прочитать файл бодяга Общие вопросы Delphi 1 09.09.2007 20:37