Skip to content

Instantly share code, notes, and snippets.

@rplaurindo
Last active April 12, 2016 00:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rplaurindo/e25eb1c64f3bb3f8fadc to your computer and use it in GitHub Desktop.
Save rplaurindo/e25eb1c64f3bb3f8fadc to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(){
FILE *pont_arq;
char palavra[20];
char text[20];
char option;
do {
puts("\nMenu");
puts("\t1: Novo registro");
puts("\t2: Listar registros");
puts("\t3: Sair");
// o método getchar(), além da entrada do teclado, interpreta o aperto do "Enter" como mais um caracter, fazendo o loop ser executado equivocadamente uma vez à mais, portando usei o método da biblioteca iostream para ler uma entrada do teclado.
std::cin >> option;
puts("\n");
switch(option) {
case '1':
// pode ser colocado numa procedure
#ifdef WIN32
// aspas duplas e simples fazem diferença em alguns casos
system("cls");
#else
system("clear");
#endif
// um atalho ctrl + r, por exemplo, pode ser usado como menu para voltar para o menu anterior.
printf("\nEscreva uma palavra para testar gravacao de arquivo: ");
scanf("%s", palavra);
// cria um arquivo ou abre no modo editável (+). Caso abra, abrirá no modo append(a) isto é, de forma que um novo texto possa ser concatenado com o que já existe
pont_arq = fopen("arquivo_palavra.txt", "a+");
//escreve o novo texto no arquivo
fprintf(pont_arq, "%s", palavra);
// fecha o arquivo
fclose(pont_arq);
puts("\nDados gravados com sucesso!");
break;
case '2':
// abre o arquivo no modo leitura
pont_arq = fopen("arquivo_palavra.txt", "r");
// navega pelas linhas do arquivo
while(!feof(pont_arq)) {
fscanf(pont_arq, "%s", text);
puts(text);
}
fclose(pont_arq);
break;
case '3':
puts("close");
#ifdef WIN32
system ("pause");
#endif
break;
}
} while (option != '3');
return 0;
}
//compilando e executando
g++ <nome_do_arquivo>.cpp -o <nome_do_programa>
./nome_do_programa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment