gets()被认为是C函数还是C++;功能? #包括 使用名称空间std; void main(){ 字符名[20]; 获取(名称); CUTC函数是C++函数的子集,但不,C++中可能不需要 GETSH()/ 你可以考虑 GETLILE()/或运算符> 流。他们在大学里没有告诉过你吗?< /P> < P> GET是C函数

gets()被认为是C函数还是C++;功能? #包括 使用名称空间std; void main(){ 字符名[20]; 获取(名称); CUTC函数是C++函数的子集,但不,C++中可能不需要 GETSH()/ 你可以考虑 GETLILE()/或运算符> 流。他们在大学里没有告诉过你吗?< /P> < P> GET是C函数,c++,c,gets,C++,C,Gets,您可能正在寻找istream/ostream/fstream等等 请参阅示例:此示例不会编译,因为gets的头是cstdlib,它是一个c函数。gets是一个c函数。 您可能应该看看iostream、fstream等中的函数gets()是一个可以追溯到20世纪60年代的C函数,它不进行边界检查,被认为是危险的,多年来一直保留它是为了兼容性,其他什么都没有 你的代码在有效和推荐的C++中应该是: #include <iostream> using namespace std; voi

您可能正在寻找istream/ostream/fstream等等


请参阅示例:

此示例不会编译,因为gets的头是cstdlib,它是一个c函数。

gets是一个c函数。 您可能应该看看iostream、fstream等中的函数

gets()
是一个可以追溯到20世纪60年代的C函数,它不进行边界检查,被认为是危险的,多年来一直保留它是为了兼容性,其他什么都没有

<>你的代码在有效和推荐的C++中应该是:

#include <iostream>
using namespace std;

void main(){
    char name[20];
    gets(name);
    cout<<name<<endl;
}
#包括
使用名称空间std;
int main(){
//C风格的空终止字符串与C++字符串数据类型不相同
//字符名[20];
字符串名称;//C++字符串数据类型,用于C++函数和特征
cin>>名称;

coutFrom其主页:“永远不要使用gets()。因为在不事先知道数据的情况下无法判断gets()将读取多少个字符,并且因为gets()将继续存储超过缓冲区末尾的字符,所以使用它是极其危险的。它被用来破坏计算机安全。请改用fgets()。”以及“C89、C99、POSIX.1-2001。LSB不推荐gets()。POSIX.1-2008删除了gets()的规范。”注意,
gets
cin>
做不同的事情;当你尝试读取两个单词的字符串时,你会注意到一个差异。
getline(cin,name)
将相当于获得一整行。
#include <iostream>
using namespace std;

int main(){
    // C style NULL terminated string NOT the same as a C++ string datatype 
    //char name[20];
    string name;// C++ string datatype, meant to use with C++ functions and features
    cin >> name;
    cout<<name<<endl;
    return 0;
}