我掌握了程序的基础知识,但我一直在纠结如何建立程序的功能以及如何调用它们。我知道可能有一种更简单的方法可以做到这一点,但这就是我所知道的。该程序应该调用一个名为 uptime 的文件,读出系统已启动的时间量以及系统空闲的时间量。然后假设运行一个程序来找到平均 1000 个浮点数来将工作应用于系统。然后它返回到文件并读取正常运行时间和空闲时间,并计算有关程序为系统造成的工作量的几个值。我完全不知道如何让这个程序工作。我有 4 个函数(starttime、work、endtime 和 main),但唯一有效的函数是 main。当我将它们全部放入一个函数(主函数)中时,
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
#include <algorithm>
using namespace std;
float stopTotaltime;
float startTotaltime;
float stopIdletime;
float startIdletime;
int starttime(){
ifstream uptimefile_("/proc/uptime");
std::string line_;
int line = 0;
std::string value1;
std::string value2;
while(line < 1)
{
getline(uptimefile_, line_);
++line;
for(int line =0; line < 1; line++)
{
stringstream iss(line_);
getline(iss, value1, ' ');
getline(iss, value2);
}
}
stringstream beginutime(value1);
stringstream beginitime(value2);
float startTotaltime = 0;
float startIdletime = 0;
beginutime >> startTotaltime;
beginitime >> startIdletime;
uptimefile_.close();
}
int work(){
float i = 0.1;
float sum = 0;
float avg;
while(i < 1000){
sum = sum + i;
i = i + 0.1;
}
avg = sum/i;
}
int endtime(){
ifstream uptimefile1_("/proc/uptime");
std::string value3;
std::string value4;
std::string line_;
int line1 = 0;
while(line1 < 1)
{
getline(uptimefile1_, line_);
++line1;
for(int line1 =0; line1 < 1; line1++)
{
stringstream iss(line_);
getline(iss, value3, ' ');
getline(iss, value4);
}
}
stringstream endutime(value3);
stringstream enditime(value4);
float stopTotaltime = 0;
float stopIdletime = 0;
endutime >> stopTotaltime;
enditime >> stopIdletime;
uptimefile1_.close();
}
int main(){
float beginTotaltime;
float endTotaltime;
float beginIdletime;
float endIdletime;
beginTotaltime = startTotaltime;
endTotaltime = stopTotaltime;
beginIdletime = startIdletime;
endIdletime = stopIdletime;
float programTotaltime = endTotaltime - beginTotaltime;
float programIdletime = endIdletime - beginIdletime;
float programWorktime = programTotaltime - programIdletime;
float percentage = (programWorktime/programTotaltime)*100;
std::cout<<"Time the Program Ran:"<<programTotaltime<<'\n';
std::cout<<"Program Idle Time:"<<programIdletime<<'\n';
std::cout<<"Amount of Time the Program Worked:"<<programWorktime<<'\n';
std::cout<<"Percent of Time the Program Worked:"<<percentage<<'\n';
return 0;
}
我对 C++ 或一般编程的经验很少,几乎不了解它的基础知识,更不用说程序中多个函数的复杂性了。我愿意学习,但找不到任何可以帮助我理解该程序所需的这些概念的东西。
您的代码有一些问题。
对于初学者来说,你的三个功能:starttime()
,work()
,并endtime()
没有返回value
。您可以做一些事情来至少运行您的程序。
starttime()
需要说void starttime()
而不是拥有int
。也是endtime()
。
然后在int work()
你需要返回avg
。所以你应该把函数定义的最后一行放在int work()
: 中return avg;
。
这至少应该让你的程序在没有彻底解释的情况下运行。但是,您应该投资一本好的 C++ 书籍。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句