int main (int argc, char **argv) { char *dados, *pos, *nome_arq; int erro, arq; arq = le_param (argc, argv); nome_arq = argv[arq]; dados = le_arquivo (nome_arq); if (dados == NULL) sair (FIM_ERRO_ARQUIVO); ajusta_nomes_arquivos (nome_arq, muda_extensao (nome_arq, "s")); pos = dados; erro = analisadorSintatico (&pos); if (erro == FIM_OK && monta_exe) { char *comando; comando = calloc (15 + 2*strlen (nome_arq), sizeof (char)); sprintf (comando, "gcc -o %s %s", muda_extensao (nome_arq, "exe"), muda_extensao (nome_arq, "s")); system (comando); free (comando); } sair (erro); return erro; }
void main (){ FILE *arquivo1, *arquivo2, *arquivo3; int num; abre_modifica(arquivo1,"arq1.txt"); abre_modifica(arquivo2,"arq2.txt"); cria_abre(arquivo3,"arq3.txt"); mescla(arquivo1,"arq1.txt", arquivo2,"arq2.txt", arquivo3,"arq3.txt"); le_arquivo(arquivo3,"arq3.txt"); }
int main() { T_Pessoa pessoa = {0}; le_arquivo(&pessoa); printf("Nome lido: %s\n", pessoa.nome); printf("Idade lida: %d\n", pessoa.idade); free(pessoa.nome); return 0; }
int main (int argc, char **argv) { um_atomo at; uma_pilha pilha; char *pos, *dados; int i, ids, fim; if (argc == 1) sair (1, "Uso: teste <arquivo>\n"); dados = le_arquivo (argv[1]); if (dados == NULL) { char msg[100]=""; strcat (msg, argv[1]); strcat (msg, " nao encontrado!\n"); sair (2, msg); } printf ("Atomos:\n"); printf ("%20s %5s\n", "Classe", "Valor"); printf ("%20s %5s\n", "------", "-----"); pos = dados; // Posição inicial de leitura pilha_inicia (&pilha); fim = 0; i = 0; do { // Lê novo Átomo at = analisadorLexico (&pos, &pilha); if (i==3) { pilha_adiciona (&pilha, at); printf ("O atomo %s (%d) foi pra pilha!\n", nomeClasse (at->classe), at->valor); } else { printf ("%20s ", nomeClasse (at->classe)); if (at->classe == C_REAL) printf ("%5.10g", at->real); else printf ("%5d", at->valor); if (at->classe == C_IDENTIFICADOR) printf (" (%s)", busca_nome_ID (at->valor)); printf ("\n"); if (at->classe == C_FIM) fim = 1; if (at->classe == C_INVALIDA) fim = 2; // Limpa átomo free (at); } i++; } while (! fim); // Mostra linha do erro, quando ocorrer if (fim == 2) { printf ("\nToken desconhecido na seguinte linha:\n"); mostra_linha_atual (pos); mostra_posicao_erro (pos); } // Mostra tabela de identificadores ids = tam_tabelaID(); printf ("\nIdentificadores (%d):\n", ids); for (i = 0; i < ids; i++) { printf ("%3d: %s\n", i, busca_nome_ID (i)); } sair (0, "\nFim."); return 0; }