Introdução
Neste laboratório, você aprenderá como ler e escrever um arquivo linha por linha usando a linguagem de programação C++. Você criará um arquivo, escreverá nele e, em seguida, lerá seu conteúdo uma linha de cada vez.
Criando e abrindo um arquivo
Crie um arquivo C++ chamado file_io.cpp no diretório ~/project. Nesta etapa, você criará e abrirá um arquivo chamado example.txt.
#include <fstream>
int main() {
// Creating and opening a file
std::ofstream ofs;
ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
ofs.close();
return 0;
}
Explicação:
ofstreamé uma classe para escrever em arquivos.ofsé um objeto da classeofstream.- O método
open()é usado para criar e abrir um arquivo. - No método
open(), o primeiro argumento é o nome do arquivo a ser criado e o segundo argumento especifica o modo em que o arquivo deve ser aberto. Aqui,outespecifica que o arquivo é aberto para escrita, etruncespecifica que o arquivo deve ser truncado se já existir.
Escrevendo em um arquivo
Nesta etapa, você escreverá no arquivo example.txt.
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ofstream ofs;
ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
if (ofs.is_open()) {
std::cout << "Enter text to write to the file (Enter empty line to exit):" << std::endl;
std::string line;
do {
std::getline(std::cin, line);
if (line.length()) {
ofs << line << std::endl;
}
} while (line.length());
ofs.close();
} else {
std::cerr << "Error in opening the file" << std::endl;
}
return 0;
}
Explicação:
std::couté usado para exibir uma mensagem no console pedindo ao usuário para inserir texto para escrever no arquivo.std::getline()é usado para ler a entrada do usuário linha por linha e armazená-la na variávelline.if (line.length())é usado para verificar se o usuário inseriu algum texto ou não. Se o usuário não inseriu nenhum texto, o loop será encerrado.ofs << line << std::endl;é usado para escrever a entrada do usuário no arquivo, seguido por um caractere de nova linha.std::cerré usado para exibir uma mensagem de erro no console se o arquivo não puder ser aberto.
Para executar este programa, vá para o diretório ~/project e execute o seguinte comando:
g++ file_io.cpp -o file_io && ./file_io
Este programa solicitará ao usuário que insira texto para escrever no arquivo e, em seguida, escreverá a entrada do usuário no arquivo.
Lendo de um arquivo
Nesta etapa, você lerá o conteúdo do arquivo example.txt.
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream ifs;
ifs.open("example.txt");
if (ifs.is_open()) {
std::cout << "Contents of the file:" << std::endl;
std::string line;
while (std::getline(ifs, line)) {
std::cout << line << std::endl;
}
ifs.close();
} else {
std::cerr << "Error in opening the file" << std::endl;
}
return 0;
}
Explicação:
std::ifstreamé uma classe para ler de arquivos.ifsé um objeto da classeifstream.- O método
open()é usado para abrir um arquivo existente. - No método
open(), o argumento é o nome do arquivo a ser aberto. std::couté usado para exibir uma mensagem no console para indicar que o conteúdo do arquivo está sendo exibido.std::getline()é usado para ler o conteúdo do arquivo linha por linha e armazená-lo na variávelline.std::cout << line << std::endl;é usado para exibir o conteúdo do arquivo linha por linha no console.
Para executar este programa, vá para o diretório ~/project e execute o seguinte comando:
g++ file_io.cpp -o file_io && ./file_io
Este programa exibirá o conteúdo do arquivo example.txt no console.
Resumo
Neste laboratório, você aprendeu como criar, escrever e ler de um arquivo usando a linguagem de programação C++. Você aprendeu como usar as classes ofstream e ifstream para escrever e ler de arquivos, respectivamente. Você também aprendeu como usar o método open() para criar e abrir um arquivo, e o método getline() para ler o conteúdo de um arquivo linha por linha.



