這是我的問題。我有一些維度變化的二維數據,我想讀入一個二維數組。此外,文件中有一些不是數字,而是「NaN」,我想用零代替。我讓我的代碼工作到目前爲止,但我只設法讀取整數。也許你可以幫我把它看作雙打?用C++將數據讀入雙數組
這是我走到這一步:
void READER(char filepath [], int target [129][128])
{
//---------------------------- header double & int
int rowA = 0;
int colA = 0;
std::string line;
std::string x;
std::cout << "reading file: " << filepath << "\n";
std::cout << std::endl;
std::ifstream fileIN;
fileIN.open(filepath);
if (!fileIN.good())
std::cerr << "READING ERROR IN FILE: " << filepath << std::endl;
while (fileIN.good())
{
while (getline(fileIN, line))
{
std::istringstream streamA(line);
colA = 0;
while (streamA >> x)
{
boost::algorithm::replace_all(x, "NaN", "0");
boost::algorithm::replace_all(x, ",", ""); //. rein
// std::cout << string_to_int(x) << std::endl;
target [rowA][colA] = string_to_int(x);
colA++;
}
rowA++;
if(rowA%5 ==0)
{
std::cout << "*";
}
}
}
std::cout << " done." <<std::endl;
}
此寫入文件到「目標」。該函數的字符串INT看起來如下:
int string_to_int (const std::string& s)
{
std::istringstream i(s);
int x;
if(!(i >> x))
return 0;
return x;
}
在這裏你能找到一些示例數據:
能告訴你從文件中的一些樣本數據? – P0W
您不能通過讀取「int」來讀取「double」。它們是不同的數據類型,具有非常不同的大小和位模式。 –
你想如何讀取那些雙倍的數據,比如0.153,0.153? – P0W