我似乎无法弄清楚为什么在底部的 while 循环中,
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
}
}
编辑(解决方案):
在使用了上面给出的一些信息之后,主要来自Basile Starynkevitch(我把它放在这里是因为我还不能投票),我能够让代码工作!
我还在我的书中做了一些研究,并复制了一个类似程序的风格。也就是把代码的哪一部分放在哪里,然后输入就起作用了。我继续输出,关键部分是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;
}
}
谢谢大家的帮助!