C - 为文件写入void函数值
C++ - Write void function value to file
我具有void c 函数,该功能输出数字,每当我调用该函数时,都会显示所有数字
我已经尝试了这个
void average(int num)
{
num = 2;
cout << num;
}
int main() {
int num;
average(num);
ofstream file("tests.txt");
file<< average(num); // on file it should write 2
}
它给出了一个错误"错误:'运营商&lt;&lt;'"
没有匹配有人知道我在做什么错吗?
您的函数"平均"不能无效,它必须返回某些东西,例如float:
#include <fstream>
using namespace std;
float average( float x, float y ){
return (x+y)/2;
}
int main(){
ofstream file;
file.open ("file.txt");
file << average(3,4) << endl;
}
更多有关&lt;&lt;操作员:http://www.cplusplus.com/reference/ostream/ostream/operator<</
在average
函数中您使用std :: cout打印值,并尝试使用operator<<
在文件中捕获它们。它不起作用。如果要将这些值打印到文件中,则可以通过某些方式执行此操作。例如,其中之一:
从您的average
函数返回非空隙值。返回要打印的值,例如,如果要打印一些整数,则可以从功能中返回数组或向量,其中包括您要打印的值文件(或仅写入它们(。
例如:
std::vector<int> average() {
std::vector<int> numbers;
numbers.emplace_back(1);
return numbers;
}
并将值打印到文件:
std::ofstream file ("tests.txt");
std::vector<int> vec = average(3);
file.write((char*)vec.data(), vec.size());
但是,就您而言,似乎您必须计算平均数字的平均值,因此在函数的参数中,您可以接收矢量并计算其平均值:
double average(const std::vector<double> &numbers) {
double sum = 0;
for (auto &num : numbers) {
sum += num;
}
return sum / numbers.size();
}
然后将其打印到文件:
std::ofstream file ("tests.txt");
file << average({1, 2.34, 4}) << std::endl;
另一种思维方式..
但是,如果您想将函数返回void时,则可以将文件作为参数传递给函数(不推荐出于一般代码原因(:
void average(const std::vector<double> &numbers, std::ofstream &output_file) {
double sum = 0;
double avg;
for (auto &num : numbers) {
sum += num;
}
avg = sum / numbers.size();
output_file << avg;
}
然后在您的代码中:
std::ofstream file("tests.txt");
average({1, 2.34, 4}, file);
file << std::endl;
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 在c++类上调用void函数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 如何将指针从一个void函数传递到另一个C++
- 为什么我在使用void函数时得到错误代码C2276
- 指针没有更新它在void函数内部指向的值
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- void 函数可以传递值参数吗?
- 在 void 函数中使用 #include 变量C++
- 如何在 C++ 中将 void 函数传递给 void 指针
- 使用运算符调用 void 函数时出错<set>
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- C++ :: 如何捕获由 void 函数创建的矩阵
- 如何将一个 void 函数传递给另一个 void 函数?
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- C++命名空间中调用 void 函数的错误
- 当数组位于两个循环之间时,您可以调用数组的 void 函数吗?
- 结构新手,我对如何从 void 函数中返回值并将其放入另一个函数感到困惑
- 查找素数:错误:控件到达非void函数的末尾