Чтение .txt файла с использованием цикла do while - PullRequest
0 голосов
/ 14 сентября 2018

Я делаю эту домашнюю работу, где мне нужно читать строки из файла для каждой итерации.

Я получил следующие данные:

200 38
220 48
230 68
240 48
260 68
280 68
300 48
0 0

Мне нужно прочитатьпервые 2 целых, используя fscanf.
Затем в следующем цикле я прочитаю следующие 2 целых и так далее.Ex.я прочитаю 200 38тогда я буду читать 220 48 на следующем цикле.
Может ли кто-нибудь помочь мне с этим?

#include <stdio.h>

int main() {

    int rate, hours;
    float pay;


    // This program will compute the pay rate of a person based on the working hours.

    FILE *inputFileptr;
    FILE *outputFileptr;

    inputFileptr = fopen("input.txt","rt");
    outputFileptr = fopen("pays.txt","at");

    do {
        fscanf(inputFileptr,"%d %d", &rate, &hours);
        if  ( hours <= 40 ) {
            pay = (hours * rate) / 100.00;
            fprintf(outputFileptr,"Pay at %d centavos/hr for %d hours is %.2f pesos \n", rate, hours, pay);
        }
        else if ( hours <= 60 && hours > 40) {
            pay = ((((hours - 40)* rate) * 1.5) + ( rate * 40)) / 100.00;
            fprintf(outputFileptr,"Pay at %d centavos/hr for %d hours is %.2f pesos \n", rate, hours, pay);
        }
        else if ( hours < 60 ) {
            pay = ((((hours - 60) * rate) * 2) + (((hours - 40)* rate) * 1.5) + (rate * 40));
            fprintf(outputFileptr,"Pay at %d centavos/hr for %d hours is %.2f pesos \n", rate, hours, pay);
        }
    } while ( rate == 0 && hours == 0);

    fclose(inputFileptr);
    fclose(outputFileptr);

    return 0;
}

1 Ответ

0 голосов
/ 14 сентября 2018

Выражение здесь в вашем цикле while означает, что цикл while будет продолжаться, когда rate == 0 && hours == 0 истинно, очевидно, вы должны изменить его на rate != 0 && hours != 0, в противном случае он сразу же остановится, как только прочитает первую строку '200 38' .

Между тем, ваше выражение if else if ( hours < 60 ) должно быть else if ( hours > 60 ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...