我有一個C程序,從鍵盤讀取,像這樣:的C++等價的C的格式字符串的
scanf("%*[ \t\n]\"%[^A-Za-z]%[^\"]\"", ps1, ps2);
爲了更好地理解這是什麼指令呢,讓我們分裂格式字符串如下:
=>讀取所有空格,製表符和換行符([ \t\n]
),但不會將它們存儲在任何變量中(因此爲'*
'),並將繼續讀取,直到遇到雙引號(\"
),但雙引號不是輸入。
一旦scanf()
找到雙引號,將所有不是字母的字符讀入ps1。這是通過...'來完成的。'
%[^A-Za-z]
=>輸入任何不是大寫字母'A'到'Z'和小寫字母'a'到'z'的字母。
%[^\"]\"
=>讀取的所有剩餘的字符爲止,但不包括一個雙引號到PS2([^\"]
)和字符串必須以雙引號(\"
)結束,然而,雙引號沒有輸入。
有人能告訴我如何做同樣的事情在C++
謝謝
看來,我所說的一些人不清楚! 'cin存在於C++中以代替C的scanf,否則我們不需要'cin','cout'以及C++引入的所有特性。 – user7140484
@AndrewHenle,所以你的意思是我不能從控制檯讀取一些限制!你說過嗎?對不起,但我不相信。 – user7140484
@ 0x5453我不想在C++中引用scanf。我想在沒有cstdio的情況下也這樣做 – user7140484