开发平台(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>