我正在尝试为一个知道程序打开次数的程序创建一个函数。
为此,我创建了一个函数,用于检查是否存在名为save.txt的文件,如果没有,则创建一个并将int 1写入其中。如果文件存在,则此函数应将其递增1。
问题是虽然我可以将int 1保存到文件中,但之后我无法对文件进行更改。
这是我的代码:
#include <stdio.h>
#include <string>
#include <fstream>
#include <Windows.h>
#include <sstream>
#include <iostream>
fstream savefile("save.txt", ios::in | ios::out);
int counter;
int fileNumber;
void openFile()
{
if(!savefile)
{
cout << "File does not exist!\n";
int counter = 1;
savefile.open("save.txt", ios::in | ios::out | ios::app);
savefile.clear();
savefile << counter;
cout << "Int is " << counter << endl;
savefile.close();
}
else
{
cout << "File does exist!\n";
savefile.open("save.txt", ios::in | ios::out | ios::app);
savefile >> fileNumber;
savefile.clear();
savefile << fileNumber +1;
savefile.close();
}
}
答案 0 :(得分:0)
我就这样做了:
#include <iostream>
#include <fstream>
int main()
{
std::ifstream InFile;
std::ofstream OutFile;
int ExecutionCounter;
// try to read
InFile.open("SaveFile.txt");
if (!InFile)
{
// file does not exsist - means first time
ExecutionCounter = 1;
}
else
{
// else, file exists, read the current and increment it
InFile >> ExecutionCounter;
ExecutionCounter++;
InFile.close();
}
// ..
// your program tasks here
// ..
// on closing, save execution counter
std::remove("SaveFile.txt"); // remove old file
OutFile.open("SaveFile.txt"); // create new file
if (OutFile)
{
OutFile << ExecutionCounter;
}
OutFile.close();
return 0;
}