[AJUDA]Nao consigo guardar mais de uma palavra em C. [RESOLVIDO]

1. [AJUDA]Nao consigo guardar mais de uma palavra em C. [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 21/12/2016 - 13:12h

#include <stdio.h>
#include <stdlib.h>
#define MAX_LENGTH 5000
int main()
{
puts("encryptme começou!");
FILE *f = fopen("encryptme.txt", "w");
if( f == NULL )
{
puts("Erro! \n");
exit(1);
}
puts("Escreva o seu texto");
char *mode = malloc(MAX_LENGTH);
scanf("%s", mode);
fprintf(f ,"Text: %s", mode);
return 0;

}

Quando salva o codigo funciona normalmente.
Mas tipo se eu digitar: Q W E R T Y.
Ele só salva o Q.
Ai no arquivo txt fica assim: Texto: Q
Como resolver?


  


2. Re: [AJUDA]Nao consigo guardar mais de uma palavra em C. [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 21/12/2016 - 13:59h

Up !
"Talk is cheap, show me the code"



3. Re: [AJUDA]Nao consigo guardar mais de uma palavra em C. [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 21/12/2016 - 14:20h

Depois de muito tempo achei a soluçao!!
e só usar fgets tipo
fgets(x , TAMANHO , stdin); 

Encerrado.
"Talk is cheap, show me the code"



4. Re: [AJUDA]Nao consigo guardar mais de uma palavra em C. [RESOLVIDO]

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 22/12/2016 - 19:12h

Se você tivesse olhado manual do scanf, iria econtrar:

s Matches a sequence of non-white-space characters; the next pointer must be a pointer to the initial element of a character array that is long enough to hold the input sequence and the terminating null byte ('\0'), which is added automatically. The input string stops at white space or at the maximum field width, whichever occurs first.


Como é frisado na sessão, caracteres que não sejam espaço em branco.
Esta era a causa do seu "problema".
--
Uilian Ries
Linux Counter: 521986