[問題] c++ 讀值x換行x空白鍵
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
gcc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
沒有吧@@
問題(Question):
關於c++要讀取一些輸入
餵入的資料(Input):
像是
8 2 4 3 9
1 3 7 2 0 7 4
6 4
..
..
之類的
一行有數個數字 可是不確定有幾個
我希望能夠一行讀進一個array
類似
x[0] -> 8, 2, 4, 3, 9
x[1] -> 1, 3, 7, 2, 0, 7, 4
.
.
.
可是卡在我不知道要怎樣才能知道我已經讀到了換行
該換下一個array了...
感謝各位的幫忙!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.237.8
推
03/10 23:15, , 1F
03/10 23:15, 1F
strtok是c的寫法?@@
→
03/10 23:21, , 2F
03/10 23:21, 2F
fen大是要我先放進string嗎@@
我原本的想法是整行讀進string再想辦法分開
可是想問問看有沒有更好的解法..
→
03/10 23:28, , 3F
03/10 23:28, 3F
行數知道!
→
03/10 23:54, , 4F
03/10 23:54, 4F
恩~ 我沒用過的sstream 等等寫寫看!
其實我在寫的題目是uva 812 Trade on Verweggistan
sample input是:
1
6 12 3 10 7 16 5
2
5 7 3 11 9 10
9 1 2 3 4 10 16 10 4 16
0
綠字是接下來有幾行
亮字是我想要存到array的資料這樣..
※ 編輯: howardxu 來自: 220.132.237.8 (03/11 12:39)
→
03/11 14:57, , 5F
03/11 14:57, 5F
→
03/11 14:57, , 6F
03/11 14:57, 6F
→
03/11 18:51, , 7F
03/11 18:51, 7F
結果後來還是遇到了一樣的問題
是UVa的315 Network
後來我的解法是
先用getline讀進整行
然後放到一個stringstream
接著在放入一個用來判斷已經到尾巴的東西 假設是-1
然後就從stringstream中一次讀出一個值
判斷如果是-1 就表示到尾巴了 就停止
程式碼大概像是:
stringstream ss;
string temp;
int t;
int input[100];
getline(cin, temp);
ss << temp << " -1 "; //用-1當作尾巴
for (int i=0; i<100; i++) {
ss >> t;
if (t==-1) break;
input[i] = t;
}
這是我覺得最容易想的解法了
不知道有沒有高手有更好的方法XDD
※ 編輯: howardxu 來自: 220.132.237.8 (04/18 22:00)