Ler e escrever ficheiros CSV
Analise ficheiros CSV linha a linha e escreva os resultados novamente no disco
Ler e escrever ficheiros CSV é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.
O que é CSV?
CSV (Valores Separados por Vírgulas) é um formato tabular de texto simples. Cada linha é uma linha da tabela; as vírgulas separam as colunas. É simples, mas cheio de casos extremos.
Cabeçalhos necessários
Use fstream para arquivos e sstream para análise sintática.
#include <fstream>
#include <sstream>
#include <string>
#include <vector>Abrindo um arquivo para leitura
Construa um std::ifstream com o caminho do arquivo. Verifique se ele foi aberto.
std::ifstream file("data.csv");
if (!file) {
std::cerr << "Cannot open file\n";
return 1;
}Lendo linha por linha
Use std::getline para percorrer as linhas.
std::string line;
while (std::getline(file, line)) {
process(line);
}Dividindo uma linha
Use um stringstream e getline com um delimitador para dividir cada linha em campos.
std::vector<std::string> split(const std::string& line) {
std::vector<std::string> fields;
std::stringstream ss(line);
std::string field;
while (std::getline(ss, field, ',')) {
fields.push_back(field);
}
return fields;
}Ignorando o cabeçalho
Leia e descarte a primeira linha se ela contiver os nomes das colunas.
std::string header;
std::getline(file, header); // discardAnalisando campos tipados
Converta campos de texto em valores tipados com std::stoi ou std::stod.
auto fields = split(line);
int id = std::stoi(fields[0]);
double price = std::stod(fields[2]);Escrevendo CSV
Use std::ofstream para escrever. Envie valores pelo fluxo com << e adicione vírgulas e quebras de linha.
std::ofstream out("results.csv");
out << "name,score\n";
out << "Ada,95\n";
out << "Bob,82\n";Colocando entre aspas campos com vírgulas
Se um campo contiver uma vírgula, coloque-o entre aspas duplas. Para incluir uma aspa dentro do campo, duplique-a.
std::string escape(const std::string& s) {
if (s.find_first_of(",\"\n") == std::string::npos) return s;
std::string r = "\"";
for (char c : s) {
if (c == '"') r += '"';
r += c;
}
return r + "\"";
}Tratando quebras de linha nos campos
Campos entre aspas podem ocupar várias linhas físicas. Um leitor de CSV robusto acompanha o estado das aspas entre chamadas de getline. Para casos simples, use campos sem múltiplas linhas.
Fechando o arquivo
Os fluxos de arquivo são fechados automaticamente quando destruídos (RAII). Para um fechamento explícito, use file.close() — isso só é necessário quando você quiser reutilizar o fluxo.
Quando usar uma biblioteca
Para arquivos CSV complexos (vírgulas entre aspas, valores com múltiplas linhas e codificação), use uma biblioteca como rapidcsv ou csv-parser. Crie sua própria solução apenas para formatos simples e controlados.
Verificação rápida
Qual técnica divide uma linha nas vírgulas usando apenas a biblioteca padrão?
Recapitulação
Leia CSV com std::ifstream + std::getline, divida as linhas com um stringstream e um delimitador de vírgula e analise campos tipados com std::stoi/stod. Use uma biblioteca de verdade para CSV complexo.
Perguntas Frequentes
A aula “Ler e escrever ficheiros CSV” é grátis?
Sim — o texto completo de “Ler e escrever ficheiros CSV” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.
O que vou aprender em “Ler e escrever ficheiros CSV”?
Analise ficheiros CSV linha a linha e escreva os resultados novamente no disco Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C++ Academy?
Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Ler e escrever ficheiros CSV”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C++ Academy?
Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Construir uma calculadora CLI simples
- Ler e escrever ficheiros CSV
- Um jogo de adivinhação de números
- Um contador de frequência de palavras