-2

我的文本文件就像

Alex Garcia 1000 userid password
Sana Lopez 300 uid pwd

我正在尝试将上述文本文件保存在二维数组中

ifstream Records("customerdata.txt");
string dataarray[6][6];

    if (Records.is_open())
     {
         while ( Records.good() )
            {
                for(int i=0; i<6; i++)
                {
                    for(int j=0; j<6; j++)
                    {
                        getline(Records,dataarray[i][j],' ');

                    }


                }
            }
        Records.close();
    }
     else cout << "Unable to open file"; 

当我尝试使用 for 循环输出数组时,我丢失了一些值。我不知道我做错了什么。

4

1 回答 1

0

您需要使用类似这样的方法标记您读入的每一行,再加上您的数据阵列大于读入的记录数,您只有两行而不是 6 行。

ifstream Records("customerdata.txt");
string dataarray[6][6];

  if (Records.is_open())
   {
          while ( Records.good() )
          {
             size_t row=0;
             size_t col=0;
             std::string myLine;
             getline(Records,myLine);
             std::istringstream nlineSteam(myLine);
             std::string token;
             while(nlineSteam >> token){
              dataarray[row][col]=token;
              col++;
             }
             row++;
             col=0;

          }
    Records.close();
}
 else cout << "Unable to open file";
于 2013-05-01T17:04:29.257 回答