comando gets [RESOLVIDO]

1. comando gets [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/01/2010 - 23:04h

Alguem sabe me dizer poquequando copilo um programa com a função gets ()
da o seguinte erro?
gcc testes.c -o teste
/tmp/cc4DvDvh.o: In function `main':
testes.c:(.text+0x29): warning: the `gets' function is dangerous and should not be used.

funciona, a copilação completa mas da esse erro estranho.
o que poderia ser?


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/01/2010 - 00:44h

Olá!
No primeiro código não é nenhum erro de compilação, é simplesmente um alerta do GCC, avisando que pode ser perigoso usar a função gets().
No segundo o erro está na declaração. Como sabemos, na linguagem C não existe String, mas um array de caracteres.

Declare da seguinte forma: char string1[quantidade de índices], char string2[quantidade de índices];
Por exemplo: você quer que ambos os arrays de char tenham 30 caracteres. Faça assim:

char string1[31], string2[31];

Declara-se 31 posições, porque a última sempre é ocupada pelo terminador de string: "contrabarra zero".

E a lógica do seu programa está um pouco longe do que acho que é o desejado por você. Estude mais e reveja seu código.
Espero ter ajudade.
Grande abraço!

3. Re: comando gets [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/01/2010 - 00:10h

também tenho outra duvida:
estou tentando fazer um exercicio mas ta dando erro.
o exercicio é:
Escreva um programa que leia duas strings e as coloque na tela. Imprima também a
segunda letra de cada string.

o meu codigo esta ficando assim:
#include <stdio.h>
int main ()
{
char string1,string2;
printf ("Digite 2 strings: ");
scanf ("%s", string1);
scanf ("%s", string2);
printf ("\n\nVoce digitou %s e %s",string1,string2);
printf("\n\nAs segundas letras de cada string é: %c e %c",string1[1],string2[2]
return(0);
}

na copilação fala o seguinte:
gcc testes.c -o teste
testes.c: In function 'main':
testes.c:8: error: subscripted value is neither array nor pointer
testes.c:9: error: subscripted value is neither array nor pointer
testes.c:11: error: subscripted value is neither array nor pointer
testes.c:12: error: subscripted value is neither array nor pointer

como poderei resolver isso??


4. Re: comando gets [RESOLVIDO]

Ricardo Cardoso
ricardo cardoso

(usa Debian)

Enviado em 19/01/2010 - 00:46h

Cara tem uns 2 anos que não estudo mais C, porém se não me falha a memória falta a biblioteca <conio.h> e <stdlib.h>

tenta ai e ve o que acontece e depois poste aqui.


5. Re: comando gets [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/01/2010 - 00:49h

Não, a biblioteca conio.h é só para sistemas DOS. E não há nenhuma função que necessite da stdlib.h no código dele.
E sim, quase me esqueci, realmente está faltando uma biblioteca, que é a <string.h> para poder usar a função gets().
Abraço.


6. Deu certo

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/01/2010 - 01:27h

Antes eu tinha tentado o comando gets mas estava falhando
Por isso tentei com scanf()
Não tinha dado certo porque porque eu não defini o tanto de caracteres como disse o orlandoxavier.

ficou assim

#include <stdio.h>
int main ()
{
char string1[100],string2[100];
printf (" Digite 2 strings: ");
scanf ("%s", string1);
scanf ("%s", string2);
printf ("\n\nVoce digitou %s e %s",string1,string2);
printf("\n\nAs segundas letras de cada string é: %c e %c",string1[1],string2[1]);
return(0);
}


Obrigado pela ajuda vlw...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts