我不知道,如果它的相關性,但我使用的是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'上創建一個文件不存在。 –