0

我想编写一个将从文件中读取的程序。我已经编写了程序,但我必须对其进行修改,以便可以从文件中读取它。

我的问题是如何修改我的程序以便可以从输入文件而不是标准输入中读取?

这里是方向* * ** * ** * ** * ** * ** * ****

此版本程序的输入将从名为 candycrush.txt 的文件中读取。对 buildArrays 的更改

将输入文件流的声明添加到 buildArrays 中的变量声明中。例如:

ifstream inFile;

在从用户那里获取第一个整数之前,打开输入文件并确保它正确打开

inFile.open("candycrush.txt");

  if ( inFile.fail() )
     {
     cout << "The candycrush.txt input file did not open";
     exit(-1);
     }

一旦我进行修改,我就会遇到错误,任何建议都会有所帮助。

#include <iostream> // access to cin, cout
#include <cstring>
#include <cstdlib>
#include<cmath>

using namespace std;

int buildArrays(int A[],int B[],int C[])
{
   int a,i=0;
   cout<<"Enter the level: ";
   cin>>a;
   while(a!=-999)
   {
       A[i]=a;
       cout<<"Enter the score: ";
       cin>>a;
       B[i]=a;
       cout<<"Enter the stars: ";
       cin>>a;
       C[i]=a;
       cout<<"Enter the level: "; 
       cin>>a;
       i++;
    }
    return i;
}

 void printArrays( string reportTitle, int levelsArray[], int scoresArray[], int starsArray[], int numberOfLevels )  
{
    cout<<reportTitle<<endl;
    cout<<"Levels\tScores\tStars"<<endl;
    for(int i=0;i<numberOfLevels;i++)
   {
       cout<<levelsArray[i]<<"\t"<<scoresArray[i]<<"\t";
       for(int j=0;j<starsArray[i];j++)
       {
           cout<<"*";
       }
   cout<<endl;
 }
}

void sortArrays( int levelsArray[], int scoresArray[], int starsArray[], int numberOfLevels )
{
    for(int i=0;i<numberOfLevels;i++)
   {
       for(int j=0;j<numberOfLevels;j++)
      {
          if(levelsArray[i]<levelsArray[j])
         {
             int temp1=levelsArray[i];
             int temp2=scoresArray[i];
             int temp3=starsArray[i];
             levelsArray[i]=levelsArray[j];
             scoresArray[i]=scoresArray[j];
             starsArray[i]=starsArray[j];
             levelsArray[j]=temp1;
             scoresArray[j]=temp2;
             starsArray[j]=temp3;
          }
       }
    }
}

int main()
{
      const int MAX=400;
      int levelsArray[MAX];
      int scoresArray[MAX];
      int starsArray[MAX];

      int numberOfLevels=buildArrays(levelsArray,scoresArray,starsArray);
      printArrays( "Candy Crush UNSORTED Report", levelsArray, scoresArray, starsArray, numberOfLevels );
      sortArrays( levelsArray, scoresArray, starsArray, numberOfLevels);
      printArrays( "Candy Crush SORTED Report", levelsArray, scoresArray, starsArray, numberOfLevels );

      system("pause");

}
4

1 回答 1

0

你得到什么错误?您是否在代码中包含 fstream

#include <fstream>

要使用文件 i/o,您必须在代码中正确包含 fstream。

点击此链接获取更多帮助

http://www.cplusplus.com/doc/tutorial/files/

于 2013-11-11T06:59:27.657 回答