Ir ao conteúdo

Posts recomendados

Postado

image.thumb.png.6f895d37f828334daf3733bdeda3caf3.pngElaborar um editor de mensagens utilizando a linguagem C, que atenda as seguintes premissas:

1 – implementar por meio de funções;

2 – contemplar um menu com as opções: 1 – novo arquivo de mensagem; 2 – abrir arquivo de mensagem; 3 – visualizar arquivo de mensagem; 0 – sair.

3 – o nome do arquivo de mensagens deve ser informado pelo usuário;

4 – as mensagens deverão ser separadas por ponto e vírgula;

5 – na visualização, cada mensagem deve aparecer em uma linha.

  • Obrigado 1
Postado

@Lmicas @Lmicas      coloque um loop do / while que se repita enquanto não for digitado zero , e dentro do loop use o comando printf para imprimir as opções , e em seguida use o comando scanf para pegar a opção escolhida digitada no teclado , depois use o switch para ir para a função que faz o que foi pedido  nas opções 1 2 e 3 , e se vai precisar guardar as mensagens  em arquivos , então use o comando fopen para isso e o fprintf para gravar os dados no arquivo , para que as mensagens fique cada uma em uma linha você pode usar a o caractere new line  (  \n  )  que pula para a linha de baixo ,  mas não posso te dar um código pronto pois é contra as regras do fórum , então faça seu código e poste aqui para vermos como está e em que podemos ajudar    .

  • Curtir 1
Postado

@devair1010 desse jeito? 

//Declaração das bibliotecas
#include<stdio.h>
#include<stdlib.h>

//Declaração do prototipo das funçoes
int menu();
void novo (char caractere , char nomearq);
void visualizar (char caractere , char nomearq);
void abrir (char caractere , char nomearq);

//Declaração de um ponteiro para o arquivo
FILE *arquivo;

//Declaração das Variaveis
char caractere, letra[2], palavra[100];


void novo (char caractere , char nomearq)
{

    case 1:
            {
            printf("\nDigite o nome do arquivo para escrita:\n");
            fflush(stdin);
            gets(nomearq);    
            }break;
}

void visualizar (char caractere , char nomearq)
{
    case 2:
        {
        //Abertura do arquivo para leitura
    if((pontarq=fopen(nomearq, "a")) == NULL) //O modo w perde as informaçoes registradas, o modo a não
        printf("\nERRO NA ABERTURA DO ARQUIVO....");
    
    else
    {
        printf("\nDigite uma mensagem:\n ");
        while((caractere=getche())!='\r') // '\r' = caractere do ENTER -> aperta o enter para de escrever
        {
            fputc(caractere,pontarq);
        }
    }
    fclose(pontarq);
        }break;
}

void abrir (char caractere , char nomearq)
{
    case 3:
        {
        if((pontarq=fopen(nomearq, "r")) == NULL)
        printf("\nERRO NA ABERTURA DO ARQUIVO....");
        
    else
    {
        printf("\nMensagem do arquivo: \n");
        
        while((caractere=fgetc(pontarq)) != EOF)
        {
            printf("%c" , caractere);
        }
    }
    fclose(pontarq);    
        }break;
}

//Declaração da função menu
int menu()
{
    //Declaração da variavel local
    int opcao;
    
    do
    {
    system("cls");
    printf("\nMENU DE ESCOLHA\n");
    printf("\n------------------------------------------------\n");
    printf("\n1 - Novo arquivo de mensagem\n");
    printf("\n2 - Abrir arquivo de mensagem\n");
    printf("\n3 - Visualizar arquivo de mensagem\n");
    scanf("%i" , &opcao);
    }while;
        
}

  • Obrigado 1
Postado

@Lmicas     para postar seu código é melhor usa o botão   <>   que está desenhado na barra de ferramentas da janela de responder  . 

799670669_barradeferramentas.JPG.d0571f3786137c0e6e8a77b7b1971ed8.JPG

e seu código está bom ,  então seu código com algumas modificações poderia ser assim  :

//Declaração das bibliotecas
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
//Declaração do prototipo das funçoes
int menu();
char novo();
void visualizar();
void abrir();
//Declaração de um ponteiro para o arquivo
FILE *arquivo;
//Declaração das Variaveis
char caractere, letra[2], palavra[100],nome[30];

char novo()
{
    printf("\nDigite o nome do arquivo para escrita:\n");
    fflush(stdin);
    gets(nome);
    return nome;
}
void visualizar()
{
    //Abertura do arquivo para leitura
    if((arquivo=fopen(nome, "a")) == NULL) //O modo w perde as informaçoes registradas, o modo a não
        printf("\nERRO NA ABERTURA DO ARQUIVO....");
    else
    {
        printf("\nDigite uma mensagem:\n ");
        fflush(stdin);
        gets(palavra);
        fprintf(arquivo,"%s;\n",palavra);
        /*while((caractere=getche())!='\r') // '\r' = caractere do ENTER -> aperta o enter para de escrever
        {
            fputc(caractere,arquivo);
        }*/
    }
    fclose(arquivo);
}
void abrir(/*char caractere , char nomearq*/)
{
    if((arquivo=fopen(nome, "r")) == NULL)
        printf("\nERRO NA ABERTURA DO ARQUIVO....");
    else
    {
        printf("\nMensagem do arquivo: \n");
        while((caractere=fgetc(arquivo)) != EOF)
        {
            printf("%c" , caractere);
        }
    }
    fclose(arquivo);
    printf("    Tecle !");
    getch();
}
//Declaração da função menu
int menu()
{
    //Declaração da variavel local
    int opcao;
    system("cls"                                               );
    printf("\n  =======  MENU DE ESCOLHA  ==================\n");
    printf("------------------------------------------------\n");
    printf("1 - Novo arquivo de mensagem\n"                    );
    printf("2 - Abrir arquivo de mensagem\n"                   );
    printf("3 - Visualizar arquivo de mensagem\n"              );
    printf("0 - Sair\n\n"                                      );
    printf("    Escolha -> "                                   );
    scanf("%i" , &opcao                                        );
    return opcao;
}
int main(){
    int r,a,b;
    do{
        r=menu();
        switch(r){
        case 1:
            novo(/*caractere , nomearq*/);
            break;
        case 2:
            abrir(/*char caractere , char nomearq*/);
            break;
        case 3:
            visualizar(/*char caractere , char nomearq*/);
            break;
        }
    }while(r!=0);
    return 0;
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!