如何使用 fstream,在 .txt 文件中写入不同的值
How to use fstream, to write different values in a .txt file
我面临的问题如下:
如果我们定义类似
ofstream myFile;
myFile.open("Directory//debug.txt");
for (int i = 0; i < 10; i++)
{
myFile << i << endl;
myFile.close();
}
调试文件中的输出将为 9。
我想让它输出从 0 到 9 的所有数字。除了在 for
语句之后关闭文件之外,是否可以定义一个可以做到这一点的 ofstream?
没有。您有两个选择:
关闭循环外的文件:
myFile.open("Directory//debug.txt");
for (int i = 0; i < 10; i++)
{
myFile << i << endl;
}
myFile.close();
或者以附加模式打开文件并在循环内关闭:
for (int i = 0; i < 10; i++)
{
myFile.open("Directory//debug.txt", ios_base::app);
myFile << i << endl;
myFile.close();
}
myFile.close();
应该放在for循环之后。还引入一些错误检查以查看 open
是否确实成功。
I am calling a function foo repeatedly in a function goo I create the
file in foo and I want to output a new value each time foo is called
in goo.
为了实现您的 objective 您可以在 foo
中使用静态变量
void foo()
{
static int count=0;
ofstream myfile;
myfile.open("Directory//debug.txt",std::fstream::app)
if (myfile.is_open()) // Checking is file is successfully opened.
{
count++;
myfile<<count<<"\n";
}
myfile.close; // Close the file
}
我面临的问题如下: 如果我们定义类似
ofstream myFile;
myFile.open("Directory//debug.txt");
for (int i = 0; i < 10; i++)
{
myFile << i << endl;
myFile.close();
}
调试文件中的输出将为 9。
我想让它输出从 0 到 9 的所有数字。除了在 for
语句之后关闭文件之外,是否可以定义一个可以做到这一点的 ofstream?
没有。您有两个选择:
关闭循环外的文件:
myFile.open("Directory//debug.txt");
for (int i = 0; i < 10; i++)
{
myFile << i << endl;
}
myFile.close();
或者以附加模式打开文件并在循环内关闭:
for (int i = 0; i < 10; i++)
{
myFile.open("Directory//debug.txt", ios_base::app);
myFile << i << endl;
myFile.close();
}
myFile.close();
应该放在for循环之后。还引入一些错误检查以查看 open
是否确实成功。
I am calling a function foo repeatedly in a function goo I create the file in foo and I want to output a new value each time foo is called in goo.
为了实现您的 objective 您可以在 foo
void foo()
{
static int count=0;
ofstream myfile;
myfile.open("Directory//debug.txt",std::fstream::app)
if (myfile.is_open()) // Checking is file is successfully opened.
{
count++;
myfile<<count<<"\n";
}
myfile.close; // Close the file
}