我試圖讓用戶輸入一個隨機單詞,但是當我去嘗試存盤它時,正常cin不起作用并且似乎使 ncurses 感到困惑。我嘗試過其他功能,wgetstr()但它需要一個字符而不是字串。我一直在嘗試多種轉換功能,c_str()但沒有。有人有任何提示嗎?
uj5u.com熱心網友回復:
getstr()函式族確實回傳以空字符結尾的字串,而不僅僅是單個字符。它是 C 庫,沒有任何std::string型別。
您必須為函式提供合適的大緩沖區。getnstr使用限制讀取字符數更安全。
char buffer[256];
int result = getnstr(buffer,sizeof(buffer)-1);//Make space for '\0'
assert(results!=-1);
buffer[sizeof(buffer)-1] = '\0'; // Force null-termination in the edge case.
size_t length = strlen(buffer);
我不是 100% 確定n讀取字符的限制是否包括空位元組,如果它作為strncpy,它可能不會,在這種情況下,最好為它留一個空間并明確添加它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488831.html
上一篇:有條件地替換字串中的子字串
