在C ++中循环遍历.txt文件的行

时间:2018-12-03 16:58:33

标签: c++ parsing iostream iomanip

总的C ++初学者,正如标题所说,我试图逐行读取.txt文件,同时在移至下一行之前对行的数据执行计算。

int main() {

ifstream in_file;
string name;
int kiloWatt{};
int amperage{};
int cores{3};
int voltage{480};
double powerFactor{0.8}; 
double efficiency{0.93};
double root{};

in_file.open("../test.txt");
if(!in_file){
    cerr <<"Problem opening file" << endl;
    return 1;
}
while (in_file >> name >> kiloWatt){
    root = sqrt(cores);
    amperage = (kiloWatt*1000)/(root*voltage*powerFactor*efficiency);

    cout << setw(10) << name
         << setw(10) << kiloWatt
         << setw(10) << amperage
         << setw(10) << root
         << endl;
}
in_file.close();
return 0;

}

这有效,但是它在第一行之后关闭了循环,因此只显示了一行。...有人指出我为什么吗?非常感谢。

其引用的txt文件如下所示:

name1 23.5
name2 45.6
name3 234.8

1 个答案:

答案 0 :(得分:4)

kiloWatt是一个整数,因此在第一行中它将显示为23,看到一个非整数字符并停止。下一个name将是".5",您将尝试将"name2"读入kiloWatt,这将失败,因为它不是数字-中断了循环。 / p>

kiloWatt更改为double即可解决此问题。