如何从文件中调用多个数字

时间:2015-07-20 12:05:39

标签: c++ file nested-loops

我想知道是否有人可以帮我处理我的代码。我不确定如何从文本文件中调用具有用户输入值的特定值。

文本文件看起来像这样

1000 90 80 50 60
1001 60 70 100 90
1002 100 30 50 70

我需要在4位数之后添加每个数字,然后将它们分开。

我希望能够通过嵌套循环执行此操作。

#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>

using namespace std;

int main()
{
    string StudentGrades;
    int studentID;
    double quiz1;
    double quiz3;
    double quiz4;
    double total = 0;
    double choice;
    ofstream outFile;

cout << "Enter student ID number, Quiz 1 Grade, Quiz 2 Grade , Quiz 3 Grade, Quiz 4 Grade" << endl;
outFile.open("StudentGrades.txt");
//while (outFile.open)
//{
for (int x = 0; x < 4; x++)
{
    cout << "Enter student ID: ";
    cin >> studentID;
    cout << "Enter quiz grade 1: ";
    cin >> quiz1;
    //cout << quiz1;
    cout << "Enter quiz grade 2: ";
    cin >> quiz2;
    //cout << quiz2;
    cout << "Enter quiz grade 3: ";
    cin >> quiz3;
    //cout << quiz3;
    cout << "Enter quiz grade 4: ";
    cin >> quiz4;
    //cout << quiz4;
    cout << endl;
    //outFile.open("StudentGrades.txt");
    if (outFile.is_open())
    {
        cout << "inside if/else outFile" << endl;
        //outFile << "File successfully open";

        outFile << studentID << " " << quiz1 << " " << quiz2 << " " << quiz3 << " " << quiz4 << endl;

    }
    else
    {
        cout << "Error opening file";
    }

    cout << "Enter 0 for no more students. Enter 1 for more students." << endl;
    cin >> choice;
    if (choice == 1)
        continue;
    if (choice == 0)
    {
        outFile.close();
        break;
    }

}

//}
//declaring file and opening it






ifstream inFile;
inFile.open("StudentGrades.txt");

while (inFile >> studentID<<)
{
    cout << studentID << quiz1 << quiz2 << quiz3 << quiz4 << endl;
}



system("pause");
return (0);
}

2 个答案:

答案 0 :(得分:1)

这将是用于读取该格式文件的惯用循环:

while (inFile >> studentID >> quiz1 >> quiz2 >> quiz3 >> quiz4)
{
     // Do some arithmetic
}

我不知道嵌套循环会有什么用。

答案 1 :(得分:0)

这应该有效

#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>

using namespace std;

int main()
{
string StudentGrades;
int studentID;
double quiz1;
double quiz2;
double quiz3;
double quiz4;
double total = 0;
double choice;
ofstream outFile;

cout << "Enter student ID number, Quiz 1 Grade, Quiz 2 Grade , Quiz 3 Grade,      Quiz 4 Grade" << endl;
outFile.open("StudentGrades.txt");

for (int x = 0; x < 4; x++)
{
cout << "Enter student ID: ";
cin >> studentID;
cout << "Enter quiz grade 1: ";
cin >> quiz1;
//cout << quiz1;
cout << "Enter quiz grade 2: ";
cin >> quiz2;
//cout << quiz2;
cout << "Enter quiz grade 3: ";
cin >> quiz3;
//cout << quiz3;
cout << "Enter quiz grade 4: ";
cin >> quiz4;
//cout << quiz4;
cout << endl;
//outFile.open("StudentGrades.txt");
if (outFile.is_open())
{
    cout << "inside if/else outFile" << endl;
    //outFile << "File successfully open";

    outFile << studentID << " " << quiz1 << " " << quiz2 << " " << quiz3 << " " << quiz4 << endl;

}
else
{
    cout << "Error opening file";
}

cout << "Enter 0 for no more students. Enter 1 for more students." << endl;
cin >> choice;
if (choice == 1)
    continue;
if (choice == 0)
{
    outFile.close();
    break;
}

}



 ifstream inFile;
 inFile.open("StudentGrades.txt");

 while (inFile >> studentID >> quiz1 >> quiz2 >> quiz3 >> quiz4)
 {
 cout << studentID << " " << quiz1 << " " << quiz2 << " " << quiz3 << " " <<        quiz4 << endl;
 }



return 0;
}

您需要阅读该文件中的分数并存储在每个指定的变量中

  while (inFile >> studentID >> quiz1 >> quiz2 >> quiz3 >> quiz4)
 {
 cout << studentID << " " << quiz1 << " " << quiz2 << " " << quiz3 << " " <<        quiz4 << endl;
 }