msmsms Posted February 24, 2013 at 07:40 PM Report #496886 Posted February 24, 2013 at 07:40 PM estou a tentar receber uma string na consola e imprimila mas dá erro porquê? #include <stdio.h> #include <stdlib.h> int main() { char *nome; printf("nome:"); scanf("%s",&nome); printf("nome:%s", nome); }
pmg Posted February 24, 2013 at 07:45 PM Report #496887 Posted February 24, 2013 at 07:45 PM Porque nome é um ponteiro, mas não aponta para lado nenhum válido. 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!
msmsms Posted February 25, 2013 at 09:26 AM Author Report #496915 Posted February 25, 2013 at 09:26 AM Porque nome é um ponteiro, mas não aponta para lado nenhum válido. Porque nome é um ponteiro, mas não aponta para lado nenhum válido. esse paleio não ajudou nada! que alteração tenho de fazer no código para resolver o assunto?
AJBM Posted February 25, 2013 at 09:35 AM Report #496919 Posted February 25, 2013 at 09:35 AM Boas! O que pmg tentou dizer e que estas a declarar um ponteiro para tipo char e estas a utilizado como fosse uma variável normal, char * nome; Sabes declarar um array do tipo char, é só isso que tens que fazer. Ve este link pode ajudar te http://pt.wikibooks.org/wiki/Programar_em_C/Strings
pmg Posted February 25, 2013 at 09:53 AM Report #496927 Posted February 25, 2013 at 09:53 AM Já viste o video do Binky? 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!
msmsms Posted February 25, 2013 at 06:46 PM Author Report #496968 Posted February 25, 2013 at 06:46 PM eu comecei por fazer um programa que apenas imprimia o nome e agora quero um programa para receber e imprimir o nome com scanf, foi isso que tentei fazer em cima mas não deu certo e quero saber como é que dá certo! int main() { char *nome = "jezus"; printf("nome:%s", nome); }
HappyHippyHippo Posted February 25, 2013 at 07:10 PM Report #496972 Posted February 25, 2013 at 07:10 PM #include <stdio.h> int main() { char nome[20]; // array que guardará o nome lido do teclado printf("Qual e o seu nome : "); // pedir o nome fflush(stdout); // forçar a apresentação do pedido do nome (porque a mensagem não tem '\n' scanf("%s", nome); // não escrevas nenhum nome com mais de 20 caracteres e/ou com espaços ... printf("Bom dia %s!\n"); // apresentar a mensagem de boas vindas return 0; // a função mais retorna um inteiro } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted February 25, 2013 at 08:54 PM Report #496989 Posted February 25, 2013 at 08:54 PM Para evitar buffer overflows com o scanf() mete sempre o limite de caracteres (sem contar com o '\0') na especificacao de conversao char nome[20]; /* ... */ if (scanf("%19s", nome) != 1) /* erro */; 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!
ralmeidasantos Posted February 26, 2013 at 03:33 PM Report #497072 Posted February 26, 2013 at 03:33 PM (edited) #include <stdio.h> int main() { char *nome; printf("nome:"); scanf("%s",&nome); printf("nome:%s", nome); } Não me dá nenhuma erro no compilador ! Edited February 26, 2013 at 04:57 PM by pmg Falta LP no GeSHi HTML Master The programs change the world
HappyHippyHippo Posted February 26, 2013 at 03:36 PM Report #497073 Posted February 26, 2013 at 03:36 PM (edited) #include <stdio.h> int main() { char *nome; printf("nome:"); scanf("%s",&nome); printf("nome:%s", nome); } Não me dá nenhuma erro no compilador ! não quer dizer que irá dar em execução ... Edited February 26, 2013 at 04:04 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted February 26, 2013 at 03:37 PM Report #497075 Posted February 26, 2013 at 03:37 PM (edited) Não me dá nenhuma erro no compilador ! Porque não tinhas o compilador bem configurado! No meu compilador (gcc -std=c99 -pedantic -Wall -Werror) esse código produz o seguinte output: 59165.c: In function `main`: 59165.c:6:5: error: format `%s` expects argument of type `char *`, but argument 2 has type `char **` [-Werror=format] cc1: all warnings being treated as errors Edited February 26, 2013 at 03:38 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!
ralmeidasantos Posted February 26, 2013 at 04:00 PM Report #497080 Posted February 26, 2013 at 04:00 PM uso o dev c++ por acaso agora compilei, e o cmd abriu eu escrevi um nome e o cmd deixou de funcionar (não responde) HTML Master The programs change the world
pikax Posted February 26, 2013 at 04:24 PM Report #497086 Posted February 26, 2013 at 04:24 PM uso o dev c+por acaso agora compilei, e o cmd abriu eu escrevi um nome e o cmd deixou de funcionar (não responde) Porque nome é um ponteiro, mas não aponta para lado nenhum válido. Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
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