c - The scanf and gets work differently about put '\0' in an array? -


i getting , displaying names, , stop program when type enter key. @ below code correctly result (i know "gets" deprecated):

#include <stdio.h>  main() {     char name[50];      while(1)     {         printf("name: ");         scanf("%s", name);          if(name[0]=='\0')             break;         else             printf("name entered: %s\n", name);     } } 

but when try use scanf:

printf("nome: "); scanf("%s", nome); 

the condition name[0]=='\0' never true time. why? '\0' works differently in these functions?

if scanf cannot assign value variable (because input stream has whitespace, terminating 'string'), doesn't clear out; reason partly not variables have obvious 'clear' state.

so after scanf, nome still contains whatever contained before. need check if scanf able assign variable instead, testing return value: if (scanf(...) == 1) - means 'did scanf assign 1 variable?'


Comments

Popular posts from this blog

java - Static nested class instance -

c# - Bluetooth LE CanUpdate Characteristic property -

JavaScript - Replace variable from string in all occurrences -