我不知道,如果它的相关性,但我使用的是Windows 7和Microsoft Visual Studio 2010c。如果文件存在,如果是,改变输出
所有我想做的事情,就是要求用户输入文件名,检查是否存在该名称的文件存在,但它确实存在,请他们为不同的一个
我尝试
Main.cpp的
std::cout << std::endl << "You must create a username" << std::endl;
std::cin >> username;
user.checkFile(username);
User.cpp
void User::checkFile(std::string &username)
{
std::ifstream fin (username + ".txt");
while (fin.good)
{
std::cout << "This username already exists, please choose another.";
std::cin >> username;
if (fin.bad)
{
break;
fin.close();
}
}
}
这是否存在该名称的文件存在,但后来甚至当我键入一个不存在的名字,但它仍然告诉我正确地识别它确实存在
首先, “好”和“坏”是功能。其次,你通常可以检查'fin'。最后,它并没有处于不良状态,因为如果它存在,该文件只是打开阅读。如果不是,则创建并打开它。 – chris
加上break后的调用fin.close()是毫无意义的 - 这段代码永远不会到达 –
@chris:IIRC,'std :: ios_base :: in'将* not *在'std :: ifstream'上创建一个文件不存在。 –