我有一个文件,我可以添加和删除信息,但在删除功能(这是一个数组50)的每一行没有任何信息(高达50马克)被设置为空行。基本上,如果文件中有3个项目,那么以前没有任何内容会添加47行。所以我正在寻找绝对最简单的方法来通过文件并删除任何空行。删除文件中的空行
最简单的方法可能会很好,因为我仍在学习C++,并且还不了解许多高级功能。
bool removeFriend(string currentFriend)
{
bool successFail = false;
string friendArray[50];
int counter = 0;
string debtReason, name, amountOwed;
ofstream fout;
ifstream fin;
fin.open("moneyFriendsOweMe.txt");
if (fin.is_open())
{
while (isalpha(fin.peek()))
{
getline(fin, name);
if (name != currentFriend)
{
friendArray[counter] = name;
counter ++;
getline(fin, debtReason);
friendArray[counter] = debtReason;
counter ++;
getline(fin, amountOwed);
friendArray[counter] = amountOwed;
counter ++;
}
else
{
getline(fin, debtReason);
getline(fin, amountOwed);
successFail = true;
}
}
fin.close();
}
fout.open("moneyFriendsOweMe.txt");
if (fout.is_open())
{
for(int i = 0; i < 50; i++)
{
fout << friendArray[i];
fout << "\n";
}
fout.close();
}
return successFail;
}
你是如何使你当前的文件修改?它可能会被修改为不留空行,并避免需要进行后期处理。 – 2014-12-08 00:32:43
[阅读文件](http://stackoverflow.com/questions/7868936/read-file-line-by-line)一行一行地阅读只有一行'\ n'时跳过处理。 – Jens 2014-12-08 00:33:11
你已经试过了什么 - 发布了一些代码,然后让它更容易指出你的错误可能在哪里 – Adrian 2014-12-08 00:36:14