fabioliveira Posted April 11, 2013 at 02:13 PM Report #502813 Posted April 11, 2013 at 02:13 PM 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.
pmg Posted April 11, 2013 at 02:23 PM Report #502816 Posted April 11, 2013 at 02:23 PM 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!
fabioliveira Posted April 11, 2013 at 02:31 PM Author Report #502817 Posted April 11, 2013 at 02:31 PM podes me dar um exemplo?
pmg Posted April 11, 2013 at 02:38 PM Report #502818 Posted April 11, 2013 at 02:38 PM 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!
fabioliveira Posted April 11, 2013 at 02:41 PM Author Report #502819 Posted April 11, 2013 at 02:41 PM o que é o sizeof?
pmg Posted April 11, 2013 at 03:23 PM Report #502828 Posted April 11, 2013 at 03:23 PM 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!
fabioliveira Posted April 11, 2013 at 03:24 PM Author Report #502829 Posted April 11, 2013 at 03:24 PM (edited) char opcao_principal,opcao_cliente; Eu tenho essas variaveis e quero fazer dois inputs para ai e tenho esse problema Edited April 11, 2013 at 03:26 PM by pmg GeSHi
pmg Posted April 11, 2013 at 03:33 PM Report #502831 Posted April 11, 2013 at 03:33 PM 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!
brunoais Posted April 11, 2013 at 08:53 PM Report #502874 Posted April 11, 2013 at 08:53 PM (edited) 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 April 11, 2013 at 08:53 PM 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%.
pmg Posted April 11, 2013 at 09:45 PM Report #502881 Posted April 11, 2013 at 09:45 PM (edited) 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 April 11, 2013 at 09:50 PM 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!
brunoais Posted April 11, 2013 at 10:01 PM Report #502882 Posted April 11, 2013 at 10:01 PM 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%.
pmg Posted April 11, 2013 at 10:07 PM Report #502883 Posted April 11, 2013 at 10:07 PM (edited) 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 April 11, 2013 at 10:11 PM 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!
brunoais Posted April 12, 2013 at 10:28 AM Report #502925 Posted April 12, 2013 at 10:28 AM 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%.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now