fork(1) download
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. using namespace std;
  5.  
  6. struct Student
  7. {
  8. string ID;
  9. string name;
  10. double grade;
  11. };
  12.  
  13. int main() {
  14. //ifstream inFile;
  15. istream &inFile = cin;
  16.  
  17. Student* students = nullptr;
  18. int counter = 0, capacity = 0;
  19.  
  20. string line, netID, studentName;
  21. double grade1, grade2, grade3;
  22.  
  23. //inFile.open("Asg3Grades.txt"); //opens the file
  24.  
  25. while (getline(inFile, line)) {
  26.  
  27. istringstream iss(line);
  28.  
  29. if (iss >> netID >> studentName >> grade1 >> grade2 >> grade3) {
  30.  
  31. double average = (grade1 + grade2 + grade3) / 3;
  32.  
  33. if (counter == capacity)
  34. {
  35. Student *temp = new Student[capacity + 100];
  36. for (int i = 0; i < counter; ++i)
  37. temp[i] = students[i];
  38. delete[] students;
  39. students = temp;
  40. capacity += 100;
  41. }
  42.  
  43. students[counter].ID = netID;
  44. students[counter].name = studentName;
  45. students[counter].grade = average;
  46.  
  47. ++counter;
  48. }
  49. }
  50.  
  51. //inFile.close(); //closes the file
  52.  
  53. for (int i = 0; i < counter; i++) {
  54. cout << students[i].ID << ": " << students[i].name << " " << students[i].grade << endl;
  55. }
  56.  
  57. delete[] students;
  58. return 0;
  59. }
Success #stdin #stdout 0s 15240KB
stdin
1 joe 10 20 30
2 jack 50 75 80
3 john 100 100 100
stdout
1: joe 20
2: jack 68.3333
3: john 100