在我以前的C++项目中,我使用gets()命令。我已经完成了我的研究,发现它不再可靠,我的项目也不会运行。我在这里使用这一位代码: Load(gets(new char [50]));C++获取标识符未找到
我现在怎么会得到这行代码正常工作?如果你能提供解释。
在我以前的C++项目中,我使用gets()命令。我已经完成了我的研究,发现它不再可靠,我的项目也不会运行。我在这里使用这一位代码: Load(gets(new char [50]));C++获取标识符未找到
我现在怎么会得到这行代码正常工作?如果你能提供解释。
这里有一个简单的解决方案:
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);
我得到一个文本错误,指出“类型为”const char ^“的参数与类型的边界不兼容” char ^“ – SirRyan98
对于哪一行,在哪个例子中?BTW,你从来没有发布'Load'声明。 –
总是发布错误消息。在C++中没有周边,只有封闭的形状。:-) –
使用'的std :: string'和'的std :: getline'。 –
也考虑使用临时变量。 –
@ThomasMatthews getline不适用于“新字符” – SirRyan98