Exemplos:
Como ler arquivos em C. As funções fgetc(), fscanf() e fgets()
// Escrevendo em um arquivo #include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile ("example.txt"); if (myfile.is_open()) { myfile << "This is a line.\n"; myfile << "This is another line.\n"; myfile.close(); } else cout << "Unable to open file"; return 0; } --- // lendo um texto de um arquivo #include <iostream> #include <fstream> #include <string> using namespace std; int main () { string line; ifstream myfile ("example.txt"); if (myfile.is_open()) { while ( getline (myfile,line) ) { cout << line << '\n'; } myfile.close(); } else cout << "Unable to open file"; return 0; }
// Abre o arquivo para leitura ("r") arquivo = fopen(nomeArquivo, "r"); if (arquivo == NULL) { perror("Erro ao abrir o arquivo"); // Exibe mensagem de erro do sistema return EXIT_FAILURE; // Retorna um código de erro } printf("Lendo arquivo '%s'...\n", nomeArquivo); // Lê o arquivo linha por linha while (fgets(linha, sizeof(linha), arquivo) != NULL) { // Remove o caractere de nova linha (\n) se existir no final linha[strcspn(linha, "\n\r")] = '\0'; // Separa a linha pela vírgula usando strtok // 1. Pega o Nome (primeiro token) token = strtok(linha, ","); if (token == NULL) { fprintf(stderr, "Aviso: Linha mal formatada ou vazia encontrada: %s\n", linha); continue; // Pula para a próxima linha } char *nome = token; // 2. Pega o RG (próximo token da *mesma* string) token = strtok(NULL, ","); if (token == NULL) { fprintf(stderr, "Aviso: Linha sem RG encontrada: %s\n", linha); continue; // Pula para a próxima linha } char *rg = token; // Adiciona a pessoa à lista adicionarPessoa(&minhaLista, nome, rg); } // Fecha o arquivo após terminar de ler fclose(arquivo); printf("\n--- Conteudo da Lista ---\n"); // Imprime os dados lidos da lista for (int i = 0; i < minhaLista.tamanho; i++) { printf("Pessoa %d: Nome: %-20s | RG: %s\n", i + 1, minhaLista.pessoas[i].nome, minhaLista.pessoas[i].rg); } printf("-------------------------\n"); printf("Total de pessoas lidas: %d\n", minhaLista.tamanho);