作者chingying0 (吸猫suck cat)
看板C_and_CPP
标题[问题] c++导入TXT档资料存成double二微阵列
时间Mon Nov 21 02:32:59 2022
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无法成功
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.39.212.82 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1668969181.A.54E.html
1F:→ chingying0: getline的delimiter有加'v' 执行结果如下 11/21 02:38
3F:推 ko27tye: 你没处理每行资料内的空格吧 11/21 08:58
4F:推 mihonisizumi: 因为你每行前面有 'v' 所以转失败 11/21 12:49
5F:推 mihonisizumi: getline 不加 delim,然後在 while(ss >> num) 前 11/21 12:57
6F:→ mihonisizumi: 面加上char c;ss>>c; 11/21 12:57
7F:推 wulouise: 你的v跟空白没处理吧 11/22 22:37