我在做這個項目,我想爲設備保存一些變量; Devicename,ID和類型。需要關於通過fstream保存變量的幫助,我需要使用向量嗎?
bool Enhedsliste::newDevice(string deviceName, string type)
{
fstream myFile;
string line;
char idDest[4];
myFile.open("Devices.txt", ios::app | ios::in | ios::out); //Opretter/Åbner fil, app = startlinje er den nederste linje, in out = input output
if (myFile.is_open())
{
while (getline(myFile, line)) //Går filen igennem for hver linje
{
if (line == deviceName)
{
cout << deviceName << "-device already exists." << endl;
return false;
}
}
}
else
{
cout << "Uable to open file." << endl;
return false;
}
myFile.close();
myFile.open("Devices.txt", ios::app | ios::in | ios::out); //Opretter/Åbner fil, app = startlinje er den nederste linje, in out = input output
if (myFile.is_open())
{
if (type == "Lampe")
type_ = 1;
else if (type == "Roegalarm")
type_ = 2;
else if (type == "Tyverialarm")
type_ = 3;
else
{
cout << "Type does not exists." << endl;
return false;
}
deviceName_ = deviceName;
myFile << deviceName_ << endl;
id_++;
sprintf_s(idDest, "%03d", id_);
myFile << idDest << endl;
myFile << type_ << endl;
myFile.close();
return true;
}
else
{
cout << "Uable to open file." << endl;
return false;
}
}
現在我也要打個deleteDevice,在那裏我可以把設備名作爲參數,它會發現該行並刪除ID和類型,但我對如何做到這一點不知道。
我需要重寫我的addDevice向量嗎?我該怎麼做?
在此先感謝並對錯誤的代碼,解釋等抱歉。我是新手。
這不會留下空白嗎? – Thisen
我剛剛意識到一些事情。如果你這樣做,身份證號碼將回到3,但可能已經有ID爲3的設備。所以這是行不通的。 – Thisen