程序只读取第一行! C ++

时间:2012-11-13 23:50:32

标签: c++ arrays function arraylist line

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

1 2 3 4 五 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...

提前致谢!

1 个答案:

答案 0 :(得分: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 argcchar *argv[])很好。