Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

guma

Escrever em TXT

Recommended Posts

Ai moçada gostaria de saber como eu escrevo em arquivo txt meu codigo é este

Nao consigo fazer rodar este programa meu objetivo seria de cadastrar clientes via arquivo txt Imagem Postada

Alguem pode me ajudar por favor !!!!!!!!!!!!!!!!!!!

 

Falou Imagem Postada

 

 

#include <stdio.h>#include <stdlib.h>#include <string.h>#define  arquivo_original    "cadastro.txt"int main( ){ //INICIO DECLARAÇÃO DAS VARIAVEIS char usuario; int senha; int acesso; int op;    //FIM  //INICIO DA DECLARAÇÃO DOS PONTEIROS FILE *fporg //PONTEIRO DO ARQUIVO ORIGINAL FILE *fpnew //PONTEIRO DO ARQUIVO NOVO char uclinein[300];  //FIM // TELA INICIAL printf ("\n 1- CADASTRAR CLIENTES:"); printf ("\n 2- SAIR: " ); scanf ("\n %d",op); if (op==1)    {    printf (" Usuario :");    scanf ("\n %s", usuario);    printf (" Senha :");    scanf ("\n %d", senha);    pont_cadastro = fopen (arquivo_original, "w");    }    fclose(fporg);    fclose (fpnew);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

OI!!! Bom, dei uma alterada no teu código. Duas coisas que estavam faltando no código que tu postaste na tua mensagem:

 

Para o scanf os argumentos devem ser passados por referência – permitindo que o conteúdo do argumento seja alterado (para isso colocasse o operador & antes do nome da variável). As strings são lidas como matrizes, e o nome de uma matriz sem qualquer índice é o endereço do primeiro elemento, para ler uma string não é necessário o operador &. Então, para pegar o valor da senha que foi digitada a função ficaria assim:

scanf ("\n %d",&senha);

 

No código que escreveste o arquivo só seria aberto se a opção escolhida fosse 1 (já que o comando fopen está dentro do if). Porém, tu estavas tentando fechar o arquivo mesmo que ele não fosse aberto ( ou seja, mesmo que não fosse escolhida a opção 1 ou que o arquivo não pudesse ser aberto ele “tentaria” ser fechado.)

Eu alterei o código. É só um exemplo baseado no teu. Espero que ele te ajude...

 

 

#include <stdio.h>#include <stdlib.h>#include <string.h>#define arquivo_original "cadastro.txt"int main( ){//INICIO DECLARAÇÃO DAS VARIAVEISchar usuario;int senha;int acesso;int op;//FIM//INICIO DA DECLARAÇÃO DOS PONTEIROSFILE *fporg; //PONTEIRO DO ARQUIVO ORIGINALchar uclinein[300];//FIM// TELA INICIALprintf ("\n 1- CADASTRAR CLIENTES:");printf ("\n 2- SAIR: " );scanf ("\n %i",&op); //passa o argumento op por referência para a função scanfif (op==1){    printf (" Usuario :");    scanf ("\n %s", &usuario); //passa o argumento usuario por referência para a função scanf    printf (" Senha :");    scanf ("\n %i", &senha); ); //passa o argumento senha por referência para a função scanf	// Tenta abrir o arquivo.    if((fporg = fopen("nome_do_arquivo", "w"))== NULL) );     {        // Se houver algum erro na abertura do arquivo escreve uma mensagem de erro e sai do programa        printf("O arquivo não pôde ser aberto.\n");        exit(1);    }    else    {           printf (" Cliente :");  // se o arquivo foi aberto pega os dados do cliente e insere na string uclineim        scanf ("\n %s", uclinein);        fputs(uclinein ,fporg); //grava os dados no arquivo de texto        fclose(fporg);      // fecha o arquivo    }}}

Ah, a função fputs é só uma das funções que o C tem para escrever em arquivos de texto.Ela escreve uma sentença inteira no arquivo. Tu podes usar outras funções como o putc que insere um único caractere por vez (tu terias que escrever caractere por caractere do teu texto...). Se precisares de mais alguma ajuda é só postar outra mensagem...

Beijos...

Dani

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.