输入:scanf("%c",&a)这个是可以读取空格的。
scanf("%s",a)这个不可以读取空格、回车,遇到空格回车结束读取,并在结尾添加\0。注意预留一个位置给\0。
gets(str),可以读取空格,注意预留一个位置给\0。
scanf与gets都不做越界检查,不安全
fgets(s,int size,stdin):
从stream指定的文件内读入字符,保存到s所指定的内存空间,直到出现换行字
符、读到文件结尾或是已读了size - 1个字符为止,最后会自动加上字符 '\0'
作为字符串结束。
fgets读到的字符串如果小于其所存放的字符数组容量-1,会在结束符\0后面添加\n
如果大与其所存放的字符数组容量-1,则会在最后一位只添加\0,而没有换行。
输出:puts与printf相比,puts会在输出结束后自带换行\n
puts与printf(%s)都是遇到\0结束打印。
fputs不带自动换行
fgets/fputs、fgetc/fgetc、fread/fwrite参数文件指针都放在最后一位
fscanf/fprintf 参数文件放在第一位。
scanf("%s",a)这个不可以读取空格、回车,遇到空格回车结束读取,并在结尾添加\0。注意预留一个位置给\0。
gets(str),可以读取空格,注意预留一个位置给\0。
scanf与gets都不做越界检查,不安全
fgets(s,int size,stdin):
从stream指定的文件内读入字符,保存到s所指定的内存空间,直到出现换行字
符、读到文件结尾或是已读了size - 1个字符为止,最后会自动加上字符 '\0'
作为字符串结束。
fgets读到的字符串如果小于其所存放的字符数组容量-1,会在结束符\0后面添加\n
如果大与其所存放的字符数组容量-1,则会在最后一位只添加\0,而没有换行。
输出:puts与printf相比,puts会在输出结束后自带换行\n
puts与printf(%s)都是遇到\0结束打印。
fputs不带自动换行
fgets/fputs、fgetc/fgetc、fread/fwrite参数文件指针都放在最后一位
fscanf/fprintf 参数文件放在第一位。