Skip to content

懶人輸入法,比賽時用

範例

以下為APCS在2023/10/22的第三題測資

輸入
3 4
FHH7
IIII
LHHJ

輸出
10

輸入
4 7
0F70000
FXJ0000
II700X7
LJ0HHLJ

輸出
9

APCS提供的 Codeblocks 不支援複製、貼上 ,對於打字慢的人非常不友善。
像這個題目,測資一大串,還英文與數字混和,如果我們想要一直測試的話可以怎麼辦呢?

看到程式碼,我們可以將cin替換成自己的cin,然後在我們的cin放入要輸入的資料

#include <bits/stdc++.h>
using namespace std;
int main(){

    istringstream cin(R"(4 7
0F70000
FXJ0000
II700X7
LJ0HHLJ)");//註解這一行

    int n,m;
    string s;
    cin>>n>>m;
    for(int i=0;i<n;i++){
        cin>>s;
        cout<<s<<"\n";
    }

}
0F70000  
FXJ0000  
II700X7  
LJ0HHLJ  

Raw string literal 語法

他基本上是寫為:

R"(<字串內容>)"

請看以下程式碼:

code
#include <bits/stdc++.h>
using namespace std;
int main(){
    istringstream cin(R"((13 12\n
456 654\n
798))");
    string s;
    while(getline(cin,s)){
        cout<<s<<"%"; //'%'代表換行
    }
}
output
(13 12\n%456 654\n%798)%

有兩個重點:

  • 如果要'()'的話就要額外寫
  • 裡面的跳脫字元會被視為一般字元