2017-09-15 102 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++中沒有周邊,只有封閉的形狀。:-) –