我正在编写此代码,在其中将文件中的信息填充到二维数组中。这是文件:

5

Franks,Tom 2 3 8 3 6 3 5

Gates,Bill 8 8 3 0 8 2 0

Jordan,Michael 9 10 4 7 0 0 0

Bush,George  5 6 5 6 5 6 5

Heinke,Lonnie  7 3 8 7 2 5 7


现在数字在数组中:data[50][8]

我还汇总了每一行中的所有数字。我想将此总数添加到数据数组中,使其看起来像2 3 8 3 6 5 3 30。我该怎么做呢?
这是我所有的代码,如果您想查看的话:

int main()
{

    ifstream fin;
    char ch;
    int data[50][8];
    string names[50];

    fin.open("empdata.txt");

    int sum = 0;
    int numOfNames;
    fin >> numOfNames;

    for (int i = 0; i < numOfNames; i++) {

        fin >> names[i];

        for (int j = 0; j < 7; j++) {
            fin >> data[i][j];
        }
            }

        for (int i = 0; i < 5; i++)
        {

            for (int j = 0; j < 7; j++)
            {
                sum += data[i][j];

            }
            cout << sum << endl;
            sum = 0;
        }
}


这是c650帮助我的新代码。现在不输出任何内容:
int main()
{

ifstream fin;
char ch;
int data[50][8];
string names[50];

fin.open("empdata.txt");

int sum = 0;
int numOfNames;
fin >> numOfNames;

for (int i = 0; i < numOfNames; i++) {

    fin >> names[i];

    data[i][7] = 0;

    for (int j = 0; j < 7; j++) {
        fin >> data[i][j];
        data[i][7] += data[i][j];
    }
}

for (int i = 0; i < numOfNames; i++)
{
    cout << data[i][7] << endl;

}



system("pause");
return 0;


}

最佳答案

以下似乎是您要尝试执行的操作。我将指出您提供的代码中的缺陷。

这不是最好的方法,但是根据OP,存在一些限制,例如无法使用STL。

/*  1 */  #include <fstream>
/*  2 */  #include <iostream>
/*  3 */  #include <string>
/*  4 */
/*  5 */  using namespace std;
/*  6 */  int main()
/*  7 */  {
/*  8 */
/*  9 */      ifstream fin;
/* 10 */      int data[50][8];
/* 11 */      string names[50];
/* 12 */
/* 13 */      fin.open("test.txt");
/* 14 */
/* 15 */      int numOfNames;
/* 16 */      fin >> numOfNames;
/* 17 */
/* 18 */      for (int i = 0; i < numOfNames; i++) {
/* 19 */
/* 20 */          fin >> names[i];
/* 21 */
/* 22 */          data[i][7] = 0; /* use last spot in array for sum, set to 0. */
/* 23 */          for (int j = 0; j < 7; j++) {
/* 24 */              fin >> data[i][j];
/* 25 */              data[i][7] += data[i][j];
/* 26 */          }
/* 27 */      }
/* 28 */
/* 29 */      for (int i = 0; i < numOfNames; i++)
/* 30 */      {
/* 31 */          cout << data[i][7] << endl; /* add each element to the sum here*/
/* 32 */      }
/* 33 */      return 0;
/* 34 */  }


OP存在一个问题,即没有生成任何输出。 OP,您必须确保您的输入文件具有正确的名称...

10-07 19:10
查看更多