cpe考試筆記
二月 19, 2025
cpe處理資料必須學會內容
stringstream
:stringstream(輸入+輸出) = istringstream(輸入) + ostringstream(輸出)
所以學會stringstream就好不用管另外兩個,此功能可以大大減少cpe考試中讀取題目index的複雜性
常常搭配getline
函數1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using namespace std;
int main() {
string line; // 讀一整行
while (getline(cin, line)) { // 每次讀一行直到輸入結束
stringstream ss(line); // 把這行丟進 stringstream
string word;
while (ss >> word) { // 再以空白分隔單字
cout << word << endl;
}
}
return 0;
}- 不只如此
stringstream
還會根據你想讀取的資料型態而做改變,像是上面例題要是word是定義為int則資料就會是int,太好用啦!!! - 而
getline()
與cin>>
兩者一起用時要小心cin
時會留下換行符號(\n)
getline
會讀去到換行而不是下一行,解法是在兩者之間加上cin.ignore();
ex:1
2
3
4
5int n;
cin >> n;
string line;
cin.ignore(); //跳過換行
getline(cin, line);
note
getline
會一路讀取到\n,但!!!!讀取完後會拋棄\n
Uva 10268 498-bis
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1209
1 |
|
查看评论