#include <iostream>
using namespace std;
void main(){
char name[20];
gets(name);
cout<<name<<endl;
}
我在google找不到答案,函数gets()是C还是C ++语言函数?因为在大学里我必须只使用C ++函数。
答案 0 :(得分:4)
C函数是c ++函数的子集,但不,你可能不希望在c ++项目中使用gets()
。
您可以考虑使用getline()
或operator>>
作为流。他们没有在大学里告诉你任何关于它的事吗?
答案 1 :(得分:1)
gets是一个c函数
你可能正在寻找istream / ostream / fstream等等。
例如参见:http://www.cplusplus.com/reference/iostream/istream/read/
答案 2 :(得分:1)
gets是一个c函数,First link on google for gets。 您应该查看iostream,fstream等中的函数
答案 3 :(得分:1)
gets()
是一个可以追溯到1960年代的C函数,它没有进行边界检查,被认为是危险的,多年来一直保持兼容性,而不是其他任何东西。
您在有效和推荐的C ++中的代码应该是:
#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;
}
您应该避免将C特定功能与C ++功能混合为字符串数据类型/对象。有两种方法可以使用,但作为初学者,你应该坚持使用其中一种。
我的个人推荐,先做C,然后转换到C ++。大多数C ++程序员在纯C方面表现不佳,C语言首先出现,并被用作C ++的基础环境,但两者都以时间的方式与你想象的更多方式分开。
因此,除非您使用C ++同时研究面向对象,否则您所要做的就是使用C ++编译器在C语言中编写代码。与C相比,C ++也非常庞大。模板和面向对象的编程工具是首先使用C ++的原因。
Pure C对很多东西来说仍然很棒,小而优雅。它比C ++更容易熟练使用C语言。在不遵守任何开发团队同意的一部分功能的情况下,C ++已经发展得非常易于管理。
答案 4 :(得分:0)
此示例将无法编译,因为gets的标头是cstdlib及其c函数。