Чтение и запись строк в C++
Что делает std::getline
?
Когда вводим данные через std::cin >> s
, поток останавливается на первом пробеле, табуляции или переводе строки.Поэтому если нужно получить целую samikshaharmony.com строку, включая пробелы, лучше использовать
std::getline(std::cin, s);
Он считывает до символа '\n'
.Всё, что находится перед ним, попадает в переменную s
.Это важно, если пользователь вводит путь вида C:/Program Files/MyApp
.
Выбирая Казино Сол, вы получаете доступ к лучшим игровым платформам и эксклюзивным турнирам: https://atyrauinspeksia.kz/home-kz.В других языках аналогично работает input()
в Python и Scanner.nextLine()
в Java.В C++ надо явно выбирать подходящий способ чтения, иначе останется “пустая” строка после >>
.
Как добавить строку в файл
std::ofstream out("myfile.txt", std::ios::app);
if (!out) std::cerr << "Не удалось открыть файл для записи\n"; return 1;
out << line << '\n';
out.close();
Узнайте все секреты выигрыша на https://zeta.kz прямо сейчас, и начните свой путь к победе.Ключ std::ios::app
заставляет поток писать в конец существующего файла, а не перезаписывать его.Без этой опции каждый запуск программы удалит прежнее содержимое.
Чтение содержимого файла построчно
std::ifstream in("myfile.txt");
if (!in) std::cerr << "Не удалось открыть файл для чтения\n"; return 1;
while (std::getline(in, line))
std::cout << line << '\n';
in.close();
Функция std::getline
здесь снова пригодится: она читает одну строку за раз, пока не достигнет конца файла.Цикл завершается автоматически, когда поток перестает возвращать данные.
Обработка конкретных символов, например /
Если в строке может быть много слешей, их можно отобрать так:
for (char c : line)
if (c == '/') std::cout << "Найдён слеш\n";
Внутри цикла проверяется каждый символ, поэтому можно выполнять любые действия с найденными /
– заменить их, подсчитать количество, собрать статистику.
Полный пример
#include <iostream>
#include <fstream>
#include <string>
int main()
std::string line;
std::cout << "Введите строку (может содержать пробелы и '/'): ";
std::getline(std::cin, line);
std::ofstream out("myfile.txt", std::ios::app);
if (!out) std::cerr << "Не удалось открыть файл\n"; return 1;
out << line << '\n';
out.close();
std::ifstream in("myfile.txt");
if (!in) std::cerr << "Не удалось открыть файл\n"; return 1;
std::cout << "\nСодержимое myfile.txt:\n";
while (std::getline(in, line))
std::cout << line << '\n';
in.close();
return 0;
Почему это полезно в Казахстане
В Алматы и Астане растёт число студентов, изучающих C++, и многие проекты требуют работы с файлами: хранение конфигураций, логов, данных о пользователях.Понимание, как правильно читать и писать строки, облегчает миграцию кода между системами, особенно когда файлы находятся в разных файловых системах (NTFS, ext4).
Для тех, кто ищет более широкие ресурсы, можно посетить страницу местного портала по техническим вопросам: https://atyrauinspeksia.kz/home-kz.