Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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
Postado

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

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