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