C语言中从键盘输入字符串时的一些问题
1.scanf()
scanf()在输入字符串时有很大的弊端, 例如:
1). scanf()在从键盘读入字符时并不会根据所定义的字符数组的大小来控制读入多少个...所以不建议使用gets()函数
3.fgets()
fgets(char* str, int n,stdin )函数在输入字符串时是从标准输入流中读取一个长度为(n – 1)的字符串 , 并存放到字符数组...’\n’
3). fgets()函数在连续输入多个字符串时(也不能算是fgets()函数的缺点) , 但有时也会给我们带来麻烦) , 例如:
char str1[10];
char str2[10...此时fgets()在输入str2时直接读取了缓冲区的 jklm\n由于遇到了’\n’(或者读入了(n – 1)个字符)再存入’\0’,此时str2的输入已经完成 , 并不需要我们再次输入 ....= '\n'; ++i) {
ch = getchar();
if (i >= N) {
//当超出字符串长度时, 继续接受键盘输入的字符,直到输入\n为止
//这是为了防止字符串输入完成后输入的字符会被下一个需要输入的数据接收