Witam zadanie polega na modyfikacji programu. Tym razem program ma odczytywać dane z gotowego pliku. Wszystko jest przygotowane jednak taką modyfikację robię pierwszy raz i do końca nie wiedziałem jak się do tego zabrać.
Oto kod pliku do z modyfikowania:
#include <iostream>
#include <cstring>
struct wspaniali
{
std::string nazwiska[200];
double wplaty[50];
};//struktura wspaniali
int main()
{
int licz, i ;
wspaniali * ps = new wspaniali; // alokacja dynamiczna na strukture wspaniali
std::cout << "Podaj nazwisko i kwote (Zatwierdz \"Enter\")\n";
std::cin >> licz;
for(i=0; i < licz; i++)
{
std::cin.ignore(1);
std::getline(std::cin, ps->nazwiska[i]);
std::cin >> ps->wplaty[i];
}
for(int j=0; j < licz; j++)
{
std::cout << std::endl;
if (ps->wplaty[j] >= 10000)
{
std::cout << "Nasi Wspaniali Sponsorzy\n" << ps->nazwiska[j] << "\t" << ps->wplaty[j] << "\n";
}//if
else if (ps->wplaty[j] < 10000)
{
std::cout << "Nasi Sponsorzy\n" << ps->nazwiska[j] << "\t" << ps->wplaty[j] << "\n";
}// else if
else std::cout << "Zle dane!";//else
}
std::cout << "\n\n\t\tKoniec programu.";
return 0;
}
Oto próba modyfikacji, nie pokazuje błędów jednak nie odczytuje danych, powodem może być brak warunków pętlach for, próbowałem wielu sposobów jednak nie wiem co mogłoby pomóc:
#include <iostream>
#include <cstring>
#include <fstream>
struct wspaniali
{
std::string nazwiska[200];
double wplaty[50];
};//struktura wspaniali
int main()
{
int licz, i ;
std::fstream zPliku;
zPliku.open("ztekstem.txt", std::ios::in); // laczenie plikow
wspaniali * ps = new wspaniali; // alokacja dynamiczna na strukture wspaniali
std::cout << "Podaj nazwisko i kwote (Zatwierdz \"Enter\")\n";
//wprowadzic dane z pliku
while(zPliku.good())
{
for(i=0;;i++)
{
zPliku >> ps->wplaty[i];
zPliku >> ps->nazwiska[i]; // pobieranie pierwszej nazwy z pliku
}//for
for(int j=0;;j++)
{
if (ps->wplaty[j] >= 10000)
{
std::cout << "Nasi Wspaniali Sponsorzy\n" << ps->nazwiska[j] << "\t" << ps->wplaty[j] << "\n";
}//if
else if (ps->wplaty[j] < 10000)
{
std::cout << "Nasi Sponsorzy\n" << ps->nazwiska[j] << "\t" << ps->wplaty[j] << "\n";
}// else if
else std::cout << "Zle dane!";//else
}//for
}//while
std::cout << "\n\n\t\tKoniec programu.";
if(!zPliku.is_open())
{
std::cout << "Proba otwarcia pliku niepowiodla sie!" ;
exit(EXIT_FAILURE);
}
zPliku.close();
return 0;
}