開發平台(Platform): C++
問題(Question):
如標題,讀txt檔中的陣列存到陣列中
但一開始的"["第一個值連在一起,會讓我第一個讀的值變0
餵入的資料(Input):
txt檔的內容如下
[108.684, 19.9082, 0.316327, 0.193878, 0.867347;
64.1389, 59.4167, 14.1111, 11.2222, 7.63889;
17.8065, 6.12345, 3.29032, 12.5161, 106.226]
預期的正確結果(Expected Output):
將所讀的值正確的設給陣列model儲存
108.684, 19.9082, 0.316327, 0.193878, 0.867347
64.1389, 59.4167, 14.1111, 11.2222, 7.63889
17.8065, 6.12345, 3.29032, 12.5161, 106.226
錯誤結果(Wrong Output):
矩陣中的其他元都正確,但就是第一元會變0
0, 19.9082, 0.316327, 0.193878, 0.867347
64.1389, 59.4167, 14.1111, 11.2222, 7.63889
17.8065, 6.12345, 3.29032, 12.5161, 106.226
程式碼(Code):(請善用置底文網頁, 記得排版)
Mat model = Mat::zeros(keyt, 128, CV_32F);
char opline[1000];
int col, row = 0;
fp.open("abc.txt", ios::in);
while (fp.getline(opline, 1000, ';')){
col = 0;
char *p1 = strtok(op_line, ","); // 以","為分隔號分割字串,
// 分割結果存入p1陣列
while (p1 != NULL) {
model.at<float>(row, col) = atof(p1); // model矩陣存取讀值
col++;
p1 = strtok(NULL, ","); // 類似"進到陣列下一個元素"的概念
}
row++;
}
補充說明(Supplement):
我對指標不太熟悉
不然這問題,應該可以用我用的strtok函式就能解決
不過這問題應該很多人都很常遇到
想問一下有沒有甚麼經典的漂亮解法?
先感謝各位大大了 <m(.)m>