if语句不能正常工作,只检查一次

时间:2015-06-27 16:01:15

标签: c++

所以我根据任务制作了一个程序。该计划主要是立陶宛语,但我知道你会理解。 所以我需要的是找到杂志的名称(字符串pav)并寻找订阅它的人。所以我基本上输入了Pavadinimas1,它应该给我两个结果,因为有两个人订阅了名为Pavadinimas1的杂志,但它只给了我一个结果。我认为这是因为if语句或for语句..我不知道。我知道代码有点混乱,但我只是一个乞丐。

这是:

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>

using namespace std;
const int CMax=100;

struct Prenumerata{
string zurnalas;
string vardas;
string pavarde;
int men;
double kaina;
};
string pav;
//---------------------------------------------------------
void Duomenys(Prenumerata A[], int &n);
void Isvedimas(Prenumerata A[], int n, double pren[], string pav);
void Kaina(Prenumerata A[], int n, double pren[]);

//----------------------------------------------------------
int main(){
    setlocale(LC_ALL, "Lithuanian");
    Prenumerata A[CMax];
    int n=0;
    double pren[CMax];
    cout << "Áveskite þurnalo pavadinimà: ";
    cin >> pav;
    Duomenys(A, n);
    Kaina(A, n, pren);
    Isvedimas(A, n, pren, pav);

return 0;
}

void Duomenys(Prenumerata A[], int &n){
ifstream duom("U5.txt");
while (!duom.eof()){
    getline(duom, A[n].zurnalas, ',');
    getline(duom, A[n].pavarde, ' ');
    getline(duom, A[n].vardas, ',');
    duom >> A[n].men >> A[n].kaina;
    n++;
}
duom.close();
}
void Isvedimas(Prenumerata A[], int n, double pren[], string pav){
    ofstream ras("Rezultatai.txt");
    ras << "Pradiniai duomenys:" << endl;
    ras << endl;
    ras << setfill ('-') << setw(80) << "-" << endl;
    ras << setfill (' ');
    ras << endl;
    ras << setw(2) << "Pavadinimas" << setw(10) << "Pavardë" << setw(10) << "Vardas" << setw(20) << "Mënesiø skaièius" << setw(20) << "Mënesio kaina" << endl;
    ras << endl;
    ras << setfill ('-') << setw(80) << "-" << endl;
    ras << setfill (' ');
    ras << endl;
    for (int i=0;i<n;i++){
        ras << setw(2) << A[i].zurnalas << setw(10) << A[i].pavarde << setw(10) << A[i].vardas << setw(10) << A[i].men << setw(25) << A[i].kaina;
    }
    ras << endl;
    ras << endl;
    ras << setfill ('-') << setw(80) << "-" << endl;
    ras << setfill (' ');
    ras << endl;
    ras << "Nurodytas þurnalas: " << pav << endl;
    ras << endl;
    ras << setfill ('-') << setw(40) << "-" << endl;
    ras << setfill (' ');
    ras << setw(9) << "Pavardë" << setw(9) << "Vardas" << setw(22) << "Prenumeratos kaina" << endl;
    ras << setfill ('-') << setw(40) << "-" << endl;
    ras << setfill (' ');
    ras << endl;
    for (int i=0;i<n;i++){
        if (A[i].zurnalas==pav){
        ras << setw(9) << A[i].pavarde << setw(9) << A[i].vardas << setw(22) << pren[i] << endl;
        }
    }
    ras << endl;
    ras << setfill ('-') << setw(40) << "-" << endl;
    ras << setfill (' ');
    ras.close();
    }

    void Kaina(Prenumerata A[], int n, double pren[]){
    for (int i=0;i<n;i++){
            pren[i]=A[i].kaina*A[i].men;
    }
    }

输入文件:

Pavadinimas1,Pavarde1 Vardas1,  3    2.99
Pavadinimas2,Pavarde2 Vardas2,  6    3.99
Pavadinimas3,Pavarde3 Vardas3,  8   12.99
Pavadinimas1,Pavarde3 Vardas3,  4    2.99

0 个答案:

没有答案