0Pricing
C++ Academy · Aula

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);   // discard

Analisando 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

  1. Construir uma calculadora CLI simples
  2. Ler e escrever ficheiros CSV
  3. Um jogo de adivinhação de números
  4. Um contador de frequência de palavras
← Voltar para C++ Academy