试图将文件读入结构数组,但 for 循环仅显示第一个索引而其余索引为零?

Posted

技术标签:

【中文标题】试图将文件读入结构数组,但 for 循环仅显示第一个索引而其余索引为零?【英文标题】:Trying to read a file into a struct array, but for loop only displays the first index and the rest as zero? 【发布时间】:2019-04-28 02:04:02 【问题描述】:

我的任务是将文件读入动态结构数组并操作数据。我需要它来显示所有团队名称以及他们的赢=输分数,但它似乎只显示第一行。我在文件中的读取方式有问题吗?

测试输入文件如下所示:

New England Patriots,3,13,0

Buffalo Bills,15,1,1

Carolina Panthers,9,7,1

Jacksonville Jaguars,10,6,1

Miami Dolphins,7,9,0

Green Bay Packers,11,5,1

San Francisco 49ers,4,12,0


但我的代码结果如下:

Team W-L

New England Patriots 3-0

 0-0

 0-0

 0-0

 0-0

 0-0

 0-0

包括:iostream、fstream、字符串

我的代码:

struct teamInfo
 
     string teamName;
     int win;
     int loss;
     int playoffs;
     int winlossdiff;
 ;

void winloss( struct teamInfo *arr, int index)

int main()


        teamInfo *arr;
        char fileName[100];
        int choice,size;

        ifstream file;

        file.clear();
        cout<<"Please enter file name:";
        cin>>fileName;

        while(!fileName)
        
                cout<<"Error. Enter valid file name:\n";
                cin>>fileName;

        

        file.open(fileName);
        file>>size;
        arr = new teamInfo[size];

        for (int i =0; i<size; i++)
        
                getline(file,arr[i].teamName,',');
                file>>arr[i].win;
                file>>arr[i].loss;
                cout<<arr[i].loss;
                file>>arr[i].playoffs;
        

        file.close();

        winloss(arr,size);  
        delete[] arr;            

        return 0;                  
        

void winloss( struct teamInfo *arr, int index)

        cout<<"Team W-L\n";                   

        for(int i=0; i <index; i++)      
        
           cout<< arr[i].teamName<<" "<<arr[i].win<<"-"<<arr[i].loss<<"\n"<<endl;
                    





抱歉,如果格式奇怪,我是新人。

【问题讨论】:

【参考方案1】:

file&gt;&gt;arr[i].win 之后,流中的下一个字符是逗号,。下一个操作 file&gt;&gt;arr[i].loss 然后失败,因为逗号不能被解析为整数的一部分。

【讨论】:

我明白了,谢谢!如果你不介意我问,你认为我应该怎么做?我尝试通过 getline 解析它,但它似乎只是跳过了一些团队

以上是关于试图将文件读入结构数组,但 for 循环仅显示第一个索引而其余索引为零?的主要内容,如果未能解决你的问题,请参考以下文章

For循环遍历数组仅显示最后一个值

jQuery-UI对话框仅显示for循环的最后一次迭代[duplicate]

无法在 v-for 循环中显示数组中的所有对象,仅显示最后一个对象

我正在尝试从数组对象的这个 for 循环中显示我的图像

Python for 循环仅将最后一个列表作为值附加

PHP数组循环?