на 247 странице книги Стивена Прата "Язык С++" ("C++ Primer Plus") 6-е издание.
Я понял что там пишут, как мне кажется. У меня вопрос , я написал код используя другой метод, для чтения файла, его ведь можно считать эквивалентным или я чего-то не понимаю ?
``
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
// Открытие файла
ifstream file_input("C:\\Users\\Asus\\Desktop\\input.txt");
// Проверка, удалось ли открыть файл
if (!file_input.is_open()) {
cout << "Не удалось открыть файл" << endl;
return 1;
}
// Чтение файла
string line;
while (getline(file_input, line)) {
cout << line << endl;
}
// Закрытие файла
file_input.close();
return 0;
}
``
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Нет, один код просто выводит текст а другой еще подсчитывает количество символов
Да я это понимаю, не корректно поставил вопрос, я хотел сделать акцент вопроса именно на считывания данных с файла, а именно текста , по сути оба варианта хорошо с этим могут справиться, использование разных библиотек, меня интересует, считывание через cin.get() <iostream>`соответственно и через библиотеку `#include <fstream> эквивалентны друг-другу, может есть какие-то нюансы, просто для меня первый вариант кажется более хорошим
и да, не надо закрывать ifstream перед выходом из скоупа, сам закроется (см. RAII)
С точки зрения того, как iostream/fstream/sstream устроены - это один интерфейс над разными типами буферов. Они даже общего предка istream/ostream наследуют Могут быть тонкости для чтения именно stdin/stdout, но они уже у буфера (типа sync_with_stdio)
Еще не ознакомлен с типами буферов, можно сказать на начальном этапе изучения языка и всех этих тонкостей
Я немного прочел про 'sync_with_stdio' правильно я понимаю что это универсальная функция для работы с буфером ?
Нет, это тонкость, что конкретно std::cin/std::cout работают в чуть другом режиме по умолчанию Буферы называются rdbuf, но если вы только начинаете, вряд ли вам нужны эти тонкости - просто поверьте в универсальность *stream
Обсуждают сегодня