Ajuda para Abrir e Escrever em um Arquivo
Bom dia pessoal,
estou precisando de uma ajuda de vocês.
Estou tentando aprender como criar um arquivo para guardar dados dentro dele, por exemplo, nome.
Ja olhei muitas apostilas, mas fornecem informações gerais e nada muito específico.
Já sei que o comando para abrir um arquivo pode ser esse:
Código c:
int main(){
FILE *fp;
fp = fopen ("teste.txt", "a+");
if (fp == NULL) {
printf ("Houve um erro ao abrir o arquivo.\n");
return 1;
}
printf ("Arquivo teste criado com sucesso.\n");
fclose (fp);
return 0;
}
Até aqui eu consigo fazer, realmente o arquivo teste.txt é criado na minha pasta raiz.
Porém minha dificuldade começa agora, eu quero escrever algo dentro desse arquivo e depois quando eu precisar dentro do meu
programa, printá-lo na tela.
Simulando um caso real, se eu estivesse montando um programinha simples para cadastrar 2 usuários, pelo menos os nomes deles,
por exemplo,
Código c:
int main(){
char nomes[2];
int x;
for (x=0; x<2; x++){
printf ("Entre com o seu nome: ");
scanf ("%s", &nomes[x]);
printf ("Nome cadastrado !");
{
return 0;
}
º Como faria pra conseguir jogar os 2 nomes dentro do meu arquivo teste.txt que criei la em cima ?
Obs.: vi vários comandos para inserção de dados em arquivos, porém nao obtive sucesso.
º Depois, como faria pra conseguir mostrar esses nomes na tela ?
Espero a ajuda de vocês que são feras.
Um grande abraço.
Re: Ajuda para Abrir e Escrever em um Arquivo
Humm, ramo complicado que está entrando.
Ficaria algo assim:
Código c:
#include <stdio.h>
#include <stdlib.h>
int main() {
char nomes[2][50 + 1]; /* 2 nomes de 50 caracteres */
FILE* fp;
fp = fopen("teste.txt", "w");
if(fp == NULL) {
printf("Houve um erro ao abrir o arquivo.\n");
return 1;
}
int iii;
for(iii = 0; iii < 2; ++iii) {
printf("Entre com o seu nome: ");
scanf("%s", &nomes[iii]);
fprintf(fp, "%s\n", &nomes[iii]);
printf("Nome cadastrado !\n");
}
fclose(fp);
/* Nesse ponto, foi inserido no arquivo os nomes.
* A partir daqui, são as rotinas de leitura do arquivo
*/
fp = fopen("teste.txt", "r");
if(fp == NULL) {
printf("Houve um erro ao abrir o arquivo.\n");
return 1;
}
int jjj;
char str[50 + 1];
for(jjj = 0; jjj < 2; ++jjj) {
fscanf(fp, "%s", str);
printf("Nome: %s\n", str);
}
fclose(fp);
return 0;
}
Arquivo final (teste.txt)
Código :
osmano807@notebook_dv5 /tmp % cat teste.txt
Joaquim
João
Re: Ajuda para Abrir e Escrever em um Arquivo
Opa, vlw mesmo hein meu camarada, achei que fosse mais dificil.
Mas deixa eu tentar entender uma coisa, esse segundo "FOR" que vc fez ali, seria pra que exatamente ?
Re: Ajuda para Abrir e Escrever em um Arquivo
Citação:
Postado originalmente por
filipefaria10
Opa, vlw mesmo hein meu camarada, achei que fosse mais dificil.
Mas deixa eu tentar entender uma coisa, esse segundo "FOR" que vc fez ali, seria pra que exatamente ?
Para ler do arquivo, é que eu juntei tudo num só.
Saca só, eu dei um fclose(fp), nesse ponto, finalizaria o processamento no arquivo.
Aí, eu abri denovo para ler os nomes que escrevi no arquivo, ou seja, o segundo for é para leitura (devia ter comentado...)
Re: Ajuda para Abrir e Escrever em um Arquivo
Aaah entendi agora !
Muito obrigado pela ajuda !
vlw mesmo !
rodou legal aqui !
Abraço.