C++ 为什么我的函数不算数?

C++ 为什么我的函数不算数?,c++,clock,C++,Clock,我有一个函数,如果你在里面插入一个数字,它就会把它们数出来。只有在程序开始时调用该函数(这意味着它与clock()有关)时,才会执行此操作。我在其余变量中添加了clock(),但函数不起作用。特别是在if语句中 代码: #include <stdio.h> #include <string> #include <iostream> #include <stdlib.h> #include <windows.h> #include "m

我有一个函数,如果你在里面插入一个数字,它就会把它们数出来。只有在程序开始时调用该函数(这意味着它与clock()有关)时,才会执行此操作。我在其余变量中添加了clock(),但函数不起作用。特别是在if语句中

代码:

#include <stdio.h>

#include <string>
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include "math.h"
#include <time.h>
#include <ctime>
#include <cstdlib>
#include <mmsystem.h>

void countbysec(int Seconds);
using namespace std;

int main(){
int secondsinput;

cout<<"Type how many seconds to cout \n";
cin>>secondsinput;

countbysec(secondsinput);

return 0;
}

void countbysec(int Seconds){
    clock_t Timer;
    Timer = clock() + Seconds * CLOCKS_PER_SEC ;

    clock_t counttime = clock() + (Timer / Seconds);
    clock_t secondcount = 0;

    while(clock() <= Timer){

    if(clock() == counttime){
    counttime = counttime + CLOCKS_PER_SEC;
    secondcount = secondcount + 1;

    cout<<secondcount<<endl;
    }
    }
}
#包括
#包括
#包括
#包括
#包括
#包括“math.h”
#包括
#包括
#包括
#包括
无效计数秒(整数秒);
使用名称空间std;
int main(){
int秒输入;
coutsecondsinput;
countbysec(第二次输入);
返回0;
}
无效计数秒(整数秒){
时钟定时器;
计时器=时钟()+秒*每秒时钟;
时钟计数时间=时钟()+(计时器/秒);
时钟秒数=0;

while(clock()您没有使用此行调用函数:

void countbysec(整数秒);

您正在正向声明函数。编译器需要先查看函数声明,然后才能调用它,否则您将看到:

错误:使用未声明的标识符“countbysec”

它需要能够在您进行调用时键入check并生成调用代码


通过从下面
main()移动代码块,可以一步声明和定义函数
将其置于文件中的上方。这是正常的C/C++行为。

首先,
时钟不是执行所需操作的正确工具。它返回进程已使用的CPU时间的近似值。近似值应该会有一些警铃响起。接下来,时间CPU时间与墙时间不一样,那么谁可以比如说,当程序运行到10秒时,经过了多少时间

所以

时间必须精确
counttime
才能使计数递增。成功的几率不太高。你可能会射穿它。如果你这样做,任何东西都不会被计数。我建议

if(clock() >= counttime){
接下来,你不太可能得到最后一秒,因为

while(clock() <= Timer)

(代码)>(时钟)(注意),这是一个有点不规则的变量。在C++中,传统上是为类保留的。这使得代码读起来像<代码>定时器< /C>是一个类,但不是。“它把它们数出来。”难以理解。请用足够的工作来清楚地说明你的意思。它对我有用。
while(clock() <= Timer)