я не могу показаться, чтобы выяснить, почему, во время цикла на дне,Файл не экономить, или не
std::cout << line;
ничего не печатает.
Я считаю, что файл test.txt на самом деле не записывается, потому что, когда я открываю test.txt в своей папке, его пустой. Есть предположения?
void Ticket::WriteTicket()
{
std::string ticketInput;
std::ofstream ticketFile("test.txt");
ticketFile.open("test.txt");
std::cout << "Please Enter Ticket Information: " << std::endl;
getline(std::cin, ticketInput);
std::cout << ticketInput << std::endl; //does print out the line
ticketFile << ticketInput;
ticketFile.close();
//here for testing only
std::string line;
std::ifstream ticketRead("test.txt");
while(getline(ticketRead, line));
{
std::cout << "something here?: " << line; // there is nothing here when it outputs
}
}
EDIT (РАСТВОР):
После использования некоторых из информации, которая была дана выше, в основном из Basile Starynkevitch (я положил это здесь, потому что я еще не могу upvote), я был в состоянии чтобы код работал!
Я также сделал некоторые исследования в своей книге и скопировал стиль подобной программы. Ака, где поставить какую часть кода, а затем работать. Я продолжал с выходом, а ключевой частью был std::ifstream::in
в открытии файла для вывода.
void Ticket::WriteTicket()
{
std::string ticketInput;
std::cout << "Please Enter Ticket Information: " << std::endl;
getline(std::cin, ticketInput);
std::ofstream ticketFile("Ticket.txt");
ticketFile << ticketInput << std::endl;
ticketFile.close();
//here for testing
std::ifstream ticketRead;
ticketRead.open("Ticket.txt", std::ifstream::in);
std::string line;
while(getline(ticketRead, line))
{
std::cout << line << std::endl;
}
}
Благодарим за помощь всем!
Пожалуйста компилировать все предупреждения (например, 'г ++ -Wall') и научиться использовать отладчик (например,' gdb'). –
Вы должны либо передать имя файла конструктору, либо использовать открытую функцию, но не оба. –
Пенсионер Ниндзя, я не понимаю, что вы имеете в виду? – xCasper