error when zeroing a string

Asked

Viewed 95 times

1

I’m in a problem in my code where when zero the string and add new words it just stores the first part.Como pode ser visto na imagem, primeiramente estava armazenando normalmente, depois só armazena a primeira palavra

code goes below:

printf("Digite o nome do seu laboratorio:\n");

gets(nome_lab);

printf("O nome do laboratorio eh: %s.\n", nome_lab);

printf("Digite 1 para continuar e 2 para alterar o nome.\n");

scanf("%d", &x);

if(x == 1) printf("Vamos continuar");
if(x == 2) {
    printf("Digite o nome do laboratorio.\n");
    strcpy(nome_lab,"");
    scanf("%s", nome_lab);
    };
if(x!= 1 && x!= 2){
printf("Digite um numero valido.\n");
printf("Digite 1 para continuar e 2 para alterar o nome.\n");
while(x!= 1 || x!= 2){ scanf("%d", &x);
printf("Digite um numero valido.\n");
printf("Digite 1 para continuar e 2 para alterar o nome.\n");
 }
};

printf("%s", nome_lab);

1 answer

2


This is not a mistake! The problem is in:

scanf("%s", nome_lab);

Are you using the %s, it only keeps until the first white space, ie if you have strings with white spaces, better not use it.

Try it that way:

gets(nome_lab);
  • I understood, but when I use the gets the program ends without being able to write, in case it appears following message at the prompt "process returned 0"

  • 1

    clean the buffers first.

  • Thank you very much, it worked perfectly :)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.