Turbo C 的「cin」限制:僅讀取第一個單字
在Turbo C 中,「cin」輸入運算符有一個處理字元數組時的限制。具體來說,它只會讀取直到遇到空白字元(例如空格或換行符)。嘗試讀取多字輸入時,這可能會導致意外行為。
請考慮以下 Turbo C 代碼:
#include
class String {
char str[100];
public:
void input() {
cout > str;
}
void display() {
cout 如果執行此程式碼並輸入“Steve Hawking”,您會期望輸出顯示整個字串。但是,由於“cin”的限制,僅顯示“Steve”,因為“cin”在第一個空白字元(空格)處停止讀取。
克服限制
要解決此限制,您可以使用替代方法在Turbo C 中讀取字元陣列:
- cin.getline(str, sizeof str);
This方法將整行輸入(包括空白字元)讀取到指定的字元陣列中。 - std::getline(cin, str);
如果您有權訪問標準庫中,您可以使用此方法將整行讀入字符串對象,這提供了更大的靈活性。 - 實作您自己的字串類別:
您可以定義自己的字串類別
推薦
現在推薦的方法是使用現代C 編譯器和標準函式庫。這提供了更可靠、更有效率的輸入處理,包括讀取整行輸入的能力。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3