[問題] c++導入TXT檔資料存成double二微陣列

作者: chingying0 (吸貓suck cat)   2022-11-21 02:32:59
Win10
GCC
小弟需要將一個txt檔的資料存成double型態的二維陣列
資料來源如附圖
https://imgur.com/a/bdjQbiR
是一個144列*3行的數據
這是我的code
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
int main() {
ifstream inFile("Point_After.txt");
const int xsize = 3;
const int ysize = 144;
double (*arr)[xsize] = new double[ysize][xsize];
string line;
int y = 0;
while(getline(inFile,line)) {
istringstream ss(line);
double num;
int x = 0;
while(ss >> num) {
arr[y][x] = num;
++x;
}
++y;
}
inFile.close();
for(int y = 0; y != ysize; ++y) {
for(int x = 0; x != xsize; ++x) {
cout << arr[y][x] << " ";
}
cout << endl;
}
delete []arr;
return 0;
}
這是我執行後的結果
https://imgur.com/a/KakhsWZ
想請問各位前輩為何無法成功
謝謝
主要問題我想出在字串轉成double無法成功
作者: chingying0 (吸貓suck cat)   2022-11-21 02:38:00
getline的delimiter有加'v' 執行結果如下https://imgur.com/a/ZkULZSE
作者: ko27tye (好滋好滋)   2022-11-21 08:58:00
你沒處理每行資料內的空格吧
作者: mihonisizumi (中原岬マジ天使)   2022-11-21 12:49:00
因為你每行前面有 'v' 所以轉失敗getline 不加 delim,然後在 while(ss >> num) 前面加上char c;ss>>c;
作者: wulouise (在線上!=在電腦前)   2022-11-22 22:37:00
你的v跟空白沒處理吧

Links booklink

Contact Us: admin [ a t ] ucptt.com