当我们在使用gets函数时候,因为不确定gets函数的buffer究竟有多大,所以这个函数只能用作是玩具函数。因此,当我们需要直接从输入得到一个东西的时候可以用fgets函数代替gets函数,这样不管在嵌入式还是其他系统中的时候都可以使用。
代码如下:
1 #define U_MAX 200 2 char *stdin_get_str(char *str) 3 { 4 fgets(str,U_MAX,stdin); 5 if(str[strlen(str)-1] == '\n') 6 str[strlen(str)-1] = '\0'; 7 return str; 8 }
这个输入不能超过U_MAX个数,不过这个可以自己定义。将输入完的回车'\n'用'\0'就可以避免标准输入得到的最后一个字符是回车符。