Ir para conteúdo
Faça parte da equipe! (2024) ×

Aprendendo a usar funções de limpeza de buffer em C e Vetores


#include <Aprendiz.h>
 Compartilhar

Posts Recomendados

Olá amigos, estou aprendendo C, gostaria de ir postando a medida que eu for aprendendo para podermos discutir novas formas e otimização de códigos.

Vamos lá.

 

Este é um programa que lê characteres digitados, guarda em variáveis e após isso os imprime na tela todos juntos. Bem simples, bem noob.

 

Abaixo o código puro.

 

É necessário se cadastrar para acessar o conteúdo.

 

Dentro do spoiler o código explicado.

 

 

É necessário se cadastrar para acessar o conteúdo.

 

 

 

Espero que gostem, ainda estou aprendendo e se houver um meio de otimizar o código estou a ouvir.

 

 

 

Abraços.

Programming noob:coracao:

Link para o comentário
Compartilhar em outros sites

Gostei :3, nao sabia dessa parada "system("pause>NULL");"

 

muito bom, traga mais conteudos, se puder

 

Mano, desculpa eu estava arrumando, agora coloquei certinho dentro do spoiler , ficou coloridinho e tudo kkkkkkkkkkk

 

Valeu mano, também aprendi esses dias essa kkk

Programming noob:coracao:

Link para o comentário
Compartilhar em outros sites

  • Velha Guarda

Então cara, não sei se o C tem essas manias ou é coisa dele mesmo..

Mas cara, você não adicionou na posicao 2 do vetor.. do 1 você pulou para o 3..

 

Acho que você poderia ter colocado um algoritmo de repetição ai (loop)..

menos confusão até mesmo pra você... o código fica mais limpo..

 

E esse system("pause>NULL")? existe isso mesmo? nem manjo muito disso.. conheço mesmo o system("pause") ou o getchar();

Abraços!

Quer aprender a programar Python?

https://youtube.com/@ProgramadorPython

Link para o comentário
Compartilhar em outros sites

Então cara, não sei se o C tem essas manias ou é coisa dele mesmo..

Mas cara, você não adicionou na posicao 2 do vetor.. do 1 você pulou para o 3..

 

Acho que você poderia ter colocado um algoritmo de repetição ai (loop)..

menos confusão até mesmo pra você... o código fica mais limpo..

 

E esse system("pause>NULL")? existe isso mesmo? nem manjo muito disso.. conheço mesmo o system("pause") ou o getchar();

Abraços!

 

também concordo com o cr4cko, na questao do vetor, tipo

 

cria uma variavel

 

i = 0

char vetor[0];

 

for(i<=4; ++i){

printf("Digite uma letra: ");

}

Olá Mundo :)

Link para o comentário
Compartilhar em outros sites

E esse system("pause>NULL")? existe isso mesmo? nem manjo muito disso.. conheço mesmo o system("pause") ou o getchar();

 

Existir, existe mas... isso parece coisa ensinada por professor querendo mostrar que "manja das programaça1".

Um ponto que o autor não colocou no tópico é que fazer chamadas a função system vai depender do sistema operacional. Estando em plataforma Windows o programa será "pausado" ao final, mas estando em um linux (por exemplo) o "pause" não acontecerá por questões óbvias. Use o getchar ou então crie algo assim:

 

É necessário se cadastrar para acessar o conteúdo.

 

__

 

Aprendiz.h, eu também comecei aprendendo C já de cara me ensinaram o tal system("pause"), aliás a maioria dos instrutores vão ensinar dessa forma.

Até que depois de tomar várias pauladas e receber algumas dicas no Imasters fui atrás para entender o porque de todo mundo odiar.

 

Resumidamente, usar system("pause") é a mesma coisa que você chamar um trator para abrir uma porta. Funciona? Sim, o trator vai abrir a porta mas utilizar uma chave é mais fácil, limpo e barato, concorda? Apesar de parecer simples (por ser executada rapidamente) eis o que acontece quando você faz uma chamada para pausar o console dessa forma aí:

 

- Suspende a execução do seu programa

- Faz uma chamada para o sistema operacional

- Abre um shell do sistema operacional [relançando o SO como um sub processo]

- O sistema terá que encontrar algum comando com nome "PAUSE"

- Vai alocar memória para executar o comando

- Executar o comando e esperar que alguma tecla seja pressionada

- Deslocar a memória que foi usada para execução do comando

- Fechar o SO [aberto como sub processo]

- Continuar a execução do seu programa.

 

Depois disso você começa a pensar se é viável continuar usando. De todas as dicas que recebi, a que mais gostei e passei a usar foi usar scanf (função da própria linguagem) para pausar.

 

É necessário se cadastrar para acessar o conteúdo.

 

Convenhamos, é até mais bonito de se ler. Algumas explicações você pode encontrar NESSE TÓPICO.

No mesmo link há uma explicação sobre o uso de fflush para limpeza de buffer, outra gambiarra que ensinam.

 

E foi mal pela bíblia que postei aqui, uhuehueh.

:slow:

Link para o comentário
Compartilhar em outros sites

Então amigos, valeu pelas ideias!

O system("pause>NULL") foi a primeira função que encontrei para limpar o buffer, estou aprendendo com livros por enquanto, ainda não tive aulas de programação na faculdade.

ainda não sei muito bem como os comandos funcionam no sistemas, mas graças a explicação do rnxn já está ficando um pouco claro.

Quanto às outras ideias, eu estou chegando agora na parte dos operadores lógicos, nos if's-else, assim que eu aprender melhor esses comandos que postaram eu vou fazer uma paradinha nova e colocar aqui.

Já sabia um pouco de lógica de programação, então essa parte dos operadores e testes vai ser mais rápido.

Valeu galera.

 

Edit@

 

Realmente ficou meio confuso o lance do vetor, foi porque o código estava maior, estava usando 6 variaveis, diminuí para 4 na esperança de simplificar e acabei complicando mais X.X

Programming noob:coracao:

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.