цикл по строкам .txt файла в C ++ - PullRequest
0 голосов
/ 03 декабря 2018

Всего 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 голосов
/ 03 декабря 2018

kiloWatt является целым числом, поэтому в первой строке он будет читать 23, видеть нецелый символ и останавливаться.Следующим name будет ".5", и вы попытаетесь прочитать "name2" в kiloWatt, что не удастся, поскольку это не число - разрыв вашего цикла.

Изменение kiloWatt чтобы быть двойником, чтобы это исправить.

...