I would use std::vector instead of fixed array and std::reverse. This solution will also make your code valid for any number of input strings.
Complete code:
typedef vector<string> StrVec;
ifstream file;
string temp;
StrVec strings;
file.open("file");
while(getline (file, temp))
{
strings.push_back(temp);
}
file.close()
printf("Before reverse:\n\n");
for(StrVec::iterator i = strings.begin(); i != strings.end(); ++i)
{
printf("%s\n", i->c_str());
}
std::reverse(strings.begin(), strings.end());
printf("\nAfter reverse:\n\n");
for(StrVec::iterator i = strings.begin(); i != strings.end(); ++i)
{
printf("%s\n", i->c_str());
}