2017-09-15 106 views
0

在我以前的C++项目中,我使用gets()命令。我已经完成了我的研究,发现它不再可靠,我的项目也不会运行。我在这里使用这一位代码: Load(gets(new char [50]));C++获取标识符未找到

我现在怎么会得到这行代码正常工作?如果你能提供解释。

+0

使用'的std :: string'和'的std :: getline'。 –

+0

也考虑使用临时变量。 –

+0

@ThomasMatthews getline不适用于“新字符” – SirRyan98

回答

1

这里有一个简单的解决方案:

std::string text; 
std::cout << "Enter some text to load: "; 
std::getline(cin, text); 
Load(text.c_str()); 

如果必须使用字符数组,这里的一个代码片段:

const size_t ARRAY_CAPACITY = 64U; 
char text[ARRAY_CAPACITY]; 
std::cout << "Enter some text to load: "; 
cin.getline(&text[0], ARRAY_CAPACITY); 
Load(text); 
+0

我得到一个文本错误,指出“类型为”const char ^“的参数与类型的边界不兼容” char ^“ – SirRyan98

+0

对于哪一行,在哪个例子中?BTW,你从来没有发布'Load'声明。 –

+0

总是发布错误消息。在C++中没有周边,只有封闭的形状。:-) –