[英]How to write the result of a function to a file C++
我認為這是一個非常簡單的問題,但我沒有找到答案。
我希望將 function 的結果寫入文件。
該文件已打開,我可以向其中寫入一個簡單的字符串,但不是 function 的結果。
我錯過了什么?
#include <iostream>
#include <fstream>
using namespace std;
void addingtext(){
for (int i = 0; i < 8; ++i)
{
std::cout << i << endl;
}
}
int main () {
ofstream file;
file.open("example.txt");
if(file.is_open()){
std::cout << "File Open Access \n";
}
file << "Write this to the file";
addingtext();
//file << addingtext;
file.close();
return 0;
}
addingtext()
不返回任何內容,並寫入std::cout
。
你有兩個選擇:
選項 1:使addingtext()
返回一個字符串,然后將其寫入文件:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
std::string addingtext() {
std::string result;
for (int i = 0; i < 8; ++i)
{
std::cout << i << endl;
result += i;
result += "\n";
}
return result;
}
int main() {
ofstream file;
file.open("example.txt");
if (file.is_open()) {
std::cout << "File Open Access \n";
}
file << "Write this to the file";
file << addingtext();
file.close();
return 0;
}
選項 2:使addingtext()
寫入文件:
#include <iostream>
#include <fstream>
using namespace std;
void addingtext(ofstream& o) {
for (int i = 0; i < 8; ++i)
{
std::cout << i << endl;
o << i << endl;
}
}
int main() {
ofstream file;
file.open("example.txt");
if (file.is_open()) {
std::cout << "File Open Access \n";
}
file << "Write this to the file";
addingtext(file);
file.close();
return 0;
}
您的 function 不返回任何值。
如果它返回一個值,例如您在運行添加文本 function 期間創建的字符串,那么您可以在該文件中直接將該字符串添加到文件中。
我認為您想將文件 stream 傳遞給您的 function 以便它寫入文件而不是標准輸出。
void addingtext(ofstream& stream){
for (int i = 0; i < 8; ++i)
{
stream << i << endl;
}
}
int main () {
ofstream file;
file.open("example.txt");
if(file.is_open()){
std::cout << "File Open Access \n";
}
file << "Write this to the file";
addingtext(file);
//file << addingtext;
file.close();
return 0;
}
如果您希望 function 返回字符串,請不要將其返回類型聲明為 void。 我會:
#include <string>
string addingtext(){
string temp;
for (int i = 0; i < 8; ++i)
{
temp += i;
}
return temp;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.