Jump to content
fabioliveira

enter

Recommended Posts

fabioliveira

exemplo:

Insira um nome: blablabla

insira um numero:

insira um dado:

O meu problema é que quando insiro o nome e clico no 'enter' , ele insere o nome e o enter vai logo para o scanf do numero e passa logo para o dado.

Ou seja, insiro um nome e fica com o (nome) e no numero fica com um (\n).

Alguem sabe como resolver?

Aguardo resposta.

Share this post


Link to post
Share on other sites
pmg

Usa fgets() para obter input do utilizador.

Se necessário remove o ENTER do input.

Se necessario trata o input com sscanf() ou de outra forma.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
pmg
char nome[100], numero[12], dado[3];
puts("Insira um nome: ");
fgets(nome, sizeof nome, stdin);
puts("Insira um numero: ");
fgets(numero, sizeof numero, stdin);
puts("Insira um dado: ");
fgets(dado, sizeof dado, stdin);


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
pmg

Eu não tenho nada contra a aprendizagem pela internet, mas, provavelmente, este forum não é o mais indicado para aprender o básico do C (ou de outra linguagem de programação).

Aconselho-te que perguntes ao teu professor :)

O sizeof é um operador da linguagem C.

O valor duma expressão com sizeof e um objecto é o tamanho, em chars, do objecto a que é aplicado. Nota que o objecto, se não for um VLA, não é avaliado.

Também se pode aplicar o operador a tipos (entre parentesis) e o valor da expressão é o valor que um objecto desse tipo ocupa.

Usei-o no exemplo acima para evitar repetir constantes. Se alterar o tamanho dos arrays não preciso de alterar a instrução com fgets() para reflectir o novo tamanho.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
fabioliveira

char opcao_principal,opcao_cliente;

Eu tenho essas variaveis e quero fazer dois inputs para ai e tenho esse problema

Edited by pmg
GeSHi

Share this post


Link to post
Share on other sites
pmg

Usa o fgets() com um array temporario, depois passa desse array para os caracteres em questao.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
brunoais

O sizeof é um operador da linguagem C.

O sizeof é um macro. Acho melhor indicar como tal. Senão o pessoal ainda anda a pensar que é uma função, ou parecido.

Um macro é "uma função" do compilador. Ele irá executar o que se mandou executar usando o que se escreve e escreve um inteiro como output para o compilador de C.

Edited by brunoais

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
pmg

O sizeof é um macro.

Um macro é "uma função" do compilador.

O sizeof é um operador, tal como, por exemplo, o & (para obter o endereco dum objecto).

http://port70.net/~nsz/c/c99/n1256.html#6.5.3

http://port70.net/~nsz/c/c99/n1256.html#6.5.3.4

O PDF com o Standard C99 diz a mesma coisa que os links acima. O texto do Standard mais recente (C11, PDF) é muito parecido.

Resumindo: O sizeof é um operador. Acho melhor nao lhe chamar outras coisas, principalmente, sendo essas coisas erradas.

Edited by pmg
link para PDF do C11

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
brunoais

O sizeof é executado em tempo de compilação. O & é executado em tempo de execução.

Mas ok... Se é assim q o chamam oficialmente, então que o seja. (n estive a ler gde coisa do q está aí, só estive a tentar confirmar essa parte).


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
pmg

O sizeof é executado em tempo de compilação.

Excepto quando usado com VLAs (C99) ( ver ideone: http://ideone.com/Lk0BOw )

#include <stdio.h>

void foo(int n) {
 int VLA[n];
 printf("tamanho do array: %d\n", (int)sizeof VLA); /* sizeof @ runtime */
}

int main(void) {
 for (int i = 0; i < 3; i++) {
   int n;
   puts("introduz n (um numero pequenito, por favor): ");
   scanf("%d", &n);
   foo(n);
 }
}

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
brunoais

ok, obg. É notícia para mim, mm!

Mas é bom sempre aprender mais.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.