c/c++ fgets能读取空字符串吗?
作者:野牛程序员:2023-07-26 07:43:13 C++阅读 2677
在C/C++中,fgets
函数可以读取空字符串。fgets
函数是用于从文件或标准输入读取一行文本的函数,并且可以处理空行(空字符串)。
当fgets
函数在输入流中遇到换行符('\\n')或达到指定的最大字符数(n-1
,最后一个字符用于存储空字符'\\0'),它会将读取到的文本存储在给定的字符数组中,并在其末尾添加空字符'\\0'以表示字符串的结束。如果输入行为空行,即仅包含换行符或没有字符时,fgets
也会将空字符'\\0'存储在数组的开始位置,表示一个空字符串。
示例代码:
#include <stdio.h> int main() { char str[100]; printf("Enter a string: "); fgets(str, sizeof(str), stdin); if (str[0] == '\\n') { printf("You entered an empty string.\\n"); } else { printf("You entered: %s", str); } return 0; }
请注意,fgets
函数保留输入行中的换行符,因此在检查空行时,需要单独检查数组的第一个字符是否为换行符来判断是否输入了空字符串。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
