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

C++ 程序只读取第一行!C++;,c++,arrays,function,arraylist,line,C++,Arrays,Function,Arraylist,Line,我的程序应该使用一个.txt文件作为输入(时间从1秒到10秒)来计算下落物体的距离。文本文件内容如下: 一, 2. 3. 4. 5. 6. 7. 8. 9 十, 这是到目前为止我的代码 #include <iostream> #include <fstream> #include <cmath> #include <cstdlib> using namespace std; //function prototype double fallingD

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

一, 2. 3. 4. 5. 6. 7. 8. 9 十,

这是到目前为止我的代码

#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;
}
#包括
#包括
#包括
#包括
使用名称空间std;
//功能原型
双下降距离(int);
void main()
{
ifstream输入文件;
整数时间;
双倍距离;
//打开文件
inputFile.open(“05.txt”);
输入文件>>时间;
{
距离=下降距离(时间);
库特


另一方面,标准将
main
定义为返回类型为
int
,而不是
void
。省略参数(
int argc
char*argv[]
)正如您所做的,这很好。

我建议查看循环…您的程序听起来不错。到底是什么问题?它输出了正确的值,然后按“按任意键继续…”VS编译器在调试配置程序中插入的存根。我希望它读取超过.txt文件的第一行。它应该显示十行数据。是的,我希望它打印以下列表,而不仅仅是一行。例如,我希望它输出1 4.9、2 19.6、3 44.1 4 78.4等等,直到最后一个值10。@JeffYoungblood:我发布了一个例子来说明如何做到这一点。这个;
inputFile>>time
从文件中读取下一个值,并将其转换为布尔值。这意味着,在发生错误的情况下,不管是什么,文件结尾都会退出循环。如果你偶然发现一个例子使用
while(!file.eof())
while(!file.fail())
或者类似的东西,你现在知道这是错的。你会看到这到处都是,而且总是错的。天啊,我觉得自己太傻了……哈哈,谢谢大家!
cout << time << "\t\t" << distance << endl;
inputFile.open("05.txt");
int time;
while(inputFile >> time) {     
    distance = fallingDistance (time);
    cout << time << "\t\t" << distance << endl;
}