Ir ao conteúdo
  • Cadastre-se

C Meu programa só le o 1 nome que digito


PBlackOuT

Posts recomendados

To criando um projeto pra faculdade, o programa está rodando perfeitamente, mas quando digite o nome, ele salva no arquivo apenas o que está antes do 1 espaço, depois que eu dou espaço ele não salva mais!sadsa.thumb.png.fd38364435fc4629b559b868650ed21a.png

adicionado 30 minutos depois

Falaram pra eu substituir pro gets();aaaaaa.thumb.png.511619b7514e10a76e8a6cb9a8cd0b19.png mas ai ta dando bug no programa :(

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@PBlackOuT    é isso mesmo o scanf só pega a primeira palavra mesmo, para você pegar a frase toda , você precisa usar gets() , mas no seu código você está usando fgets() que é usado para pegar frase no arquivo e não digitada pelo usuário , então use gets().   e na hora que você for pegar os nomes no arquivo e você quiser pegar uma frase toda ou o nome e sobrenome de uma pessoa, você usa o comando fgets( variável , tamanho da variável , arquivo ) ,  e nesse caso você precisa resetar o caractere newline que o fgets()  pega junto com a frase toda, e para resetar esse newline você usa o strlen para pegar o tamanho da string que o fgets() pegou e coloca no último caractere da string um caractere espaço assim :

variavel[strlen(variavel)-1] = ' '; 

pois se não fizer isso, na hora de imprimir vai pular uma linha pois no final da string terá um caractere " \n " ,que o newline, e é esse caractere que se deve deletar .  já o comando fscanf() também só pega um nome no arquivo .

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Eu fiz desse jeito e rodou, mas na verdade nao entendi pra que serve o sizeoff, mas ta funcionando. Fui ver um video pra ajudar. Eu tentei usar o gets, mas nao tava dando certo, falaram que podia ser o buffer do teclado, eu poderia usar o fflush(stdin) ou usar o fgets dessa for123.png.2d22ebde779f48822e9b207c20c5e5bc.png3213213.thumb.png.f3a967bb793a647b7d402584b834b6f5.pngma, e funcionou das duas formas. Obrigado mesmo pela ajuda também! :D

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...