2011-03-01 67 views
-1

我有一个数据文件“1.dat”,它具有4列和250行。从文件中单独读取数据并在C++中乘以两列

我需要读取每一行并处理它,例如乘以两列[col1和col2]。

你能提出一种方法来做到这一点吗?

我必须使用C++。

+7

你怎么有这么远吗? – 2011-03-01 15:35:17

回答

0

假设文件分隔的数据,你可能会:

  • 使用ifstream打开文件
  • 使用std::getline(ifstream, line)读取线。你可以在循环中做到这一点。行应该是类型std::string
  • 使用istringstream(行)处理每行,然后将这些读入您的元素中。

要存储读取的数据,您可以使用vector< vector<double> >或某种矩阵类。

vector<vector<double> >

ifstream ifs(filename); 
std::vector< std::vector<double> > mat; 
if(ifs.is_open()) 
{ 
    std::string line; 
    while(std::getline(ifs, line)) 
    { 
     std::vector<double> values; 
     std::istringstream iss(line); 
     double val; 
     while(iss >> val) 
     { 
      values.push_back(val); 
     } 
     mat.push_back(values); 
    } 
} 
+0

谢谢CashCow。你可以告诉我如何从行[行]中提取数据吗?我需要以[i] [j]的形式读取我的数据。 – nagendra 2011-03-01 15:55:41

+1

@negendra - 你为什么需要* a [i] [j]'形式的数据?你的问题是如何从一个文件中读取和相乘两列数据。你的评论使你看起来更像是在做你的功课。 – Tony 2011-03-06 23:27:03

0

http://www.cplusplus.com/doc/tutorial/files/ 下面是关于如何使用C++读取文件的一些提示,之后您需要将字符串转换为整数或浮点数。

+0

谢谢Bearder。我可以这样做,但无法单独读取所有数据。我想读取每个数据,比如[i] [j]。可以,请给我一些建议吗?谢谢。 – nagendra 2011-03-01 15:45:00

+0

http://stackoverflow.com/questions/236129/how-to-split-a-string – VoronoiPotato 2011-03-01 15:52:45

相关问题