结构中的visual studioc ++数组大小太长

时间:2016-11-30 04:08:45

标签: c++ arrays visual-studio-2012 struct

我目前正在为我的初学者C ++课程做作业,本章是关于结构的。我正在使用视觉工作室,因此我无法为动态数组做任何事情(即没有矢量等)。

我遇到麻烦的部分功课是读取文件末尾有一些空格的文件。由于我使用的是filename.eof(),因此它正在读取空白并记录该数据。我尝试过做cin.ignore(xxxxx,' \ n'),但这不起作用。我目前的输出是我想要的数据,但是一排垃圾。我如何摆脱垃圾?

a)将数据读入数组的功能。您可以使用名为soccer-1.txt的附加文件来测试您的代码。毫无疑问,您的代码必须适用于任何输入数据文件。当然,为了测试,请使用您的文件以避免在测试时输入数据。必须始终由用户输入数据文件的名称(不要硬编码文件名)。另外,请检查以确保给定的输入数据文件存在。如果该文件不存在,请发出错误消息以提醒用户有关无效的文件名。确保再次询问用户其他文件的名称。但是,在用户输入错误的文件名总共3次后终止程序。注意:数据文件名可以在函数内输入。

文本文件如下所示: "

<input type= "File" >
<button (click)="input()">Submit</button>

这是我的代码:

Duckey E Donald forward 8 2 21
Goof B Goofy defense 12 0 82
Brave A Balto goalkeeper 0 0 5
Snow W White defense 1 2 3
Alice I Wonderful midfield 1 5 15
Samina S Akthar right_defense 1 2 7
Simba P Green left_back 7 3 28
**************WHITESPACE****************************
**************WHITESPACE****************************

1 个答案:

答案 0 :(得分:0)

好的,您可以在此处应用更改:

while (!infile.eof()) {
  infile >> matrix[i].name.fName >> matrix[i].name.middleInitial >>
      matrix[i].name.lName >> matrix[i].postion >> matrix[i].goals >>
      matrix[i].penalties >> matrix[i].jersey;

  i++; // holds size of array
}

读取字符串或一组字符串,而不是直接读取容器。这样,您可以在复制到matrix容器之前检查它们是否有效(即非空白)。