Моя программа должна отображать информацию из текстового файла. Текстовый файл находится здесь http://pastebin.com/qB6nX2x4Программа не отображает результат правильно
Я не могу найти проблему в своей программе. Я думаю, что это связано с циклом, но я не уверен. Моя программа работает правильно, но отображает только первую строку текста. Любая помощь будет оценена по достоинству.
#include <iostream>
#include <string>
#include <cstdlib>
#include <fstream>
using namespace std;
int buildArrays(int A[],int B[],int C[])
{
int i=0,num;
ifstream inFile;
inFile.open("candycrush.txt");
if(inFile.fail())
{
cout<<"The candycrush.txt input file did not open"<<endl;
exit(-1);
}
while(inFile)
{
inFile>>num;
A[i]=num;
inFile>>num;
B[i]=num;
inFile>>num;
C[i]=num;
i++;
}
inFile.close();
return i;
}
void printArrays(string reportTitle, int levelsArray[], int scoresArray[], int starsArray[], int numberOfLevels)
{
cout<<endl;
cout<<reportTitle<<endl;
cout<<"Levels\tScores\tStars"<<endl;
cout<<"---------------------"<<endl;
for(int i=0;i<numberOfLevels;i++)
{
cout<<levelsArray[i]<<"\t"<<scoresArray[i]<<"\t";
for(int j=0;j<starsArray[j];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");
}
«Моя программа работает правильно» hm, если она производит неверный вывод, то это утверждение, очевидно, не соответствует действительности (вы имеете в виду, что оно проходит без сбоев?). пожалуйста, опишите, что он должен * сделать ... – codeling
Разве это не тот же вопрос, что и ваш другой вопрос [Программа только петля через один раз] (http://stackoverflow.com/questions/19902164/program-only-loop- через-раз)? – chwarr
Проблема кажется довольно ясной. В вашем файле содержатся записи типа '***', но вы пытаетесь прочитать это, как если бы это было число 'inFile >> num; C [i] = num; 'должно быть очевидно, что это не сработает. – john