Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

peshe

Sou iniciante em C/C++

Recommended Posts

Pessoal, estou começando a fuçar em C/C++ e em meu primeiro programa eu tive um problema, eu estou usando o seguinte código:

#include <stdio.h>int nome;main(void)  	  	  {		  printf("Digite seu nome:");		  scanf("%d", &nome);		  printf("\n\nSeu nome é: %d", &nome);		  return 0;	  }

Quando eu testo e digito o meu nome, ele retorna um escrito que não da para ler, porque ja fecha a janela, quando eu o abro pelo DOS e digito o meu nome, ele retorna alguns números que não tem nada a ver com o que eu escrevi, por exemplo, se escrevo "Peshe" (sem aspas) ele retorna "4214816" (sem aspas),quando escrevo qualquer outra coisa, aparece os mesmo números; não tenho nem idéia de porque isso acontece. Alguém me ajuda com isso?

 

E outra coisa: na janela não aparece escrito "seu nome é:...", aparece "Seu nome ú:..." Isso é normal?

 

Té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nome no caso é uma string. assim, o programa muda um pouco:

Pessoal, estou começando a fuçar em C/C++ e em meu primeiro programa eu tive um problema, eu estou usando o seguinte código:

#include <stdio.h>char[50] nome;main(void)  	  	  {		  printf("Digite seu nome:");		  scanf("%s", &nome);		  printf("\n\nSeu nome é: %s", &nome);		  return 0;	  }
Quando eu testo e digito o meu nome, ele retorna um escrito que não da para ler, porque ja fecha a janela, quando eu o abro pelo DOS e digito o meu nome, ele retorna alguns números que não tem nada a ver com o que eu escrevi, por exemplo, se escrevo "Peshe" (sem aspas) ele retorna "4214816" (sem aspas),quando escrevo qualquer outra coisa, aparece os mesmo números; não tenho nem idéia de porque isso acontece. Alguém me ajuda com isso?E outra coisa: na janela não aparece escrito "seu nome é:...", aparece "Seu nome ú:..." Isso é normal?Té mais.
O fato de aparecer o 'é zoado' é coisa do DOS mesmo. Ele não entende a codificação que usamos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, nao deu não, deu alguns erros:2 C:\C ++\nome.cpp expected unqualified-id before '[' token 2 C:\C ++\nome.cpp expected `,' or `;' before '[' token C:\C ++\nome.cpp In function `int main()': 8 C:\C ++\nome.cpp `nome' undeclared (first use this function) (Each undeclared identifier is reported only once for each function it appears in.) Só umas perguntas, qual é a diferença entre 'int nome;' e 'char[50] nome;'? e no meu código eu usava "%d" no seu código está "%s", o que muda de um para outro?Té mais?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma coisa: eu consegui fazer o programa funcionar sem o [50] da segunda linha, ficou apenas: "char nome;"Falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma coisa: eu consegui fazer o programa funcionar sem o [50] da segunda linha, ficou apenas: "char nome;"

 

Falow

Conseguiu pq o Dev-C++ (é esse mesmo que você usa?) não tem limite de buffer (bugsss..), o certo seria char nome[50], ou seja um nome de 50-1 caracteres (-1 é pq ele bota uma barra no fim ao você pressionar ENTER), colocando char nome, você está avisando que 'nome' só tem 1 letra, o que está errado.. certo?

 

então para evitar erros de buffer de memoria no futuro, acostume-se a não forçar o compilador over-buffar, entendeu?

 

 

Inteiro = %d

char = %c

string (cadeia de caracteres) = %s

float (flutuante) = %f

double = %lf

 

 

Para usar acentos ou caracteres especiais, use a tabela ASCII, pegue o codigo nela (ex. 82) e bote: 'seu nome \x82'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.