在C++中使用fgets而非gets是因为gets函数存在潜在的安全风险。gets函数会读取用户输入的字符串,但不会对输入的字符串长度进行验证,这可能导致缓冲区溢出的问题。而fgets函数则会限制读取的字符数,避免了缓冲区溢出的风险。
另外,gets函数在C++11标准中已经被弃用,因为其不安全的特性。因此,为了编写更加安全的代码,建议在C++中使用fgets函数来代替gets函数。