3

我的程序应该使用 .txt 文件作为输入(时间以 1 到 10 秒为单位)来计算坠落物体的距离。文本文件内容如下:

1 2 3 4 5 6 7 8 9 10

到目前为止,这是我的代码。

#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdlib>
using namespace std;

//function prototype
double fallingDistance (int);

void main()
{
    ifstream inputFile;
    int time;
    double distance;

    //open the file
    inputFile.open("05.txt");
    inputFile >> time;

    {
        distance = fallingDistance (time);
        cout << time << "\t\t" << distance << endl;
    }
}
double fallingDistance (int time)
{
    double distance, gravity=9.8;
    distance = static_cast<double>(0.5 * gravity * pow(time,2));
    return distance;
}

这就是我的程序编译的内容:

1 4.9 press any key to continue...

提前致谢!

4

1 回答 1

3
cout << time << "\t\t" << distance << endl;

您首先int从输入文件中读取一个。接下来,您distance使用time. 然后你要打印 的值time,两个制表符,最后是 的值distance

此行执行后main返回并且您的程序退出。你为什么期望它打印其他东西?

如果您需要从文件中获取更多值,那么您需要使用循环,将整个过程包装在一个循环中,该循环从文件中读取,直到它完成整个过程。就像是:

inputFile.open("05.txt");
int time;
while(inputFile >> time) {     
    distance = fallingDistance (time);
    cout << time << "\t\t" << distance << endl;
}

在旁注中,main标准将其定义为返回类型为int,而不是void。像您所做的那样省略参数 (int argc和) 很好。char *argv[]

于 2012-11-13T23:53:17.040 回答