Maybe you could rewrite the above code very slightly, split the output into three stages,
1 2 3 4 5 6 7
for (map<string, vector<double>>::iterator it=convertedGrades.begin(); it != convertedGrades.end(); ++it) {
output << it->first << "\t";
// here add another loop to output each element of the vector<double> it->second
output << endl;
}
It is an interesting design decision to implement your list of students as a mapping between name and list of grades. That was pretty cool, methinks. However, it does cause you an interesting set of difficulties, exacerbated by the fact that you did not explicitly specify types for your objects, increasing maintenance issues.
Nevertheless, you can output your students and their grades with a simple nested list:
1 2 3 4 5 6 7 8
for (auto student : convertedGrades)
output << student.first; // student.name
for (auto grade : student.second) // for each grade in student.grades
output << "\t" << grade;
output << "\n";
}