Reading strings and integers from .txt file and printing output as strings only

Hello,
I'm new to C++, and I'm trying to write a short C++ program that reads lines of
text from a file, with each line containing one integer key and one alphanumeric string value (no embedded whitespace). The number of lines is not known in advance, (i.e., keep reading lines until end of file is reached). The program needs to use the 'std::map' data structure to store integers and strings read from input (and to associate integers with strings). The program then needs to output string values (but not integer values) to standard output, 1 per line, sorted by integer key values (smallest to largest). So, for example, suppose I have a text file called "data.txt" which contains the following three lines:

10 dog
-50 horse
0 cat

The output should then be:

horse
cat
dog

I've pasted below the progress I've made so far on my C++ program:

#include <fstream>
#include <iostream>
#include <map>
using namespace std;
using std::map;
int main ()
{
string name;
signed int value;
ifstream myfile ("data.txt");

while (! myfile.eof() )
{
getline(myfile,name,'\n');
myfile >> value >> name;
cout << name << endl;
}
return 0;
}

Unfortunately, this produces only the following output:

horse
cat

If anyone has any tips, hints, suggestions, etc. on changes
I need to make to the program to get it to work as needed, can you please
let me know?

Thanks!
Hint: Look at what your output does.
Suggestion: Close the file using myfile.close() before you exit the program.
Topic archived. No new replies allowed.