Ir para o conteúdo
msmsms

imprimir string

Mensagens Recomendadas

msmsms

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);
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
msmsms

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
msmsms

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);
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo
#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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ralmeidasantos

#include <stdio.h>
int main()
{
   char *nome;
   printf("nome:");
   scanf("%s",&nome);
   printf("nome:%s", nome);
}

Não me dá nenhuma erro no compilador !

Editado por pmg
Falta LP no GeSHi

HTML Master

The programs change the world

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

#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 ...

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

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

Editado por 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ralmeidasantos

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax
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."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.