Witam, piszę program(w VS 2015), który wczyta z pliku następujące dane: ilość darczyńców, imię nazwisko i kwota.
poniżej plik do wczytania i mój kod:
4
Sam Stone
2000
Fred Flass
100500
Tommy Tubbs
5000
Rich Raptor
55000
// zad_6_9.cpp -- zadanie 9 z rodzialu 6 - (123) -- wczytywanie z pliku do listy
#include <iostream> //std::noskipws
#include <fstream> //biblioteka wejscia-wyjscia - fstream
#include <cstdlib> // exit ()
#include <string> // oberacje na stringach
using namespace std;
int main()
{
const int Size = 100; // wielkosc tablicy z nazwa pliku
char filename[Size]; // tablica na nazwe pliku
ifstream inFile; // obiekt do odczytu danych z pliku
cout << "Podaj nazwe pliku lub sciezke dostepu: ";
cin.getline(filename, Size); // wczytanie z konsoli nazwy pliku
inFile.open(filename); // powiazanie obiektu z plikiem
if (!inFile.is_open()) // test poprawnosci otwarcia pliku
{
cout << "Otwieranie pliku " << filename << " nie powiodlo sie.\n";
cout << "Program za chcwile zostanie zamkniety.";
cin.get();
cin.get();
exit(EXIT_FAILURE);
}
else
cout << "Plik zostal otwarty.\n";
char word[81];
int amount;
int n;
inFile >> n;
cout << "Twoja lista zawiera " << n << " darczyncow.\n";
cin.ignore(numeric_limits<streamsize>::max(), '\n');
for (int i = 0; i < n; i++)
{
cin.ignore(numeric_limits<streamsize>::max(), '\n');
inFile.getline(word, 81 ); // tu musi byc blad
cout << word << " " ;
inFile >> amount;
cout << amount << " zl.";
}
inFile.close();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
return 0;
}
program wczytuje ilość darczyńców, a potem chciałem wczytać imię i nazwisko komendą inFile.getline(word, 81) i wtedy dostaje jakieś śmieci.
Podaj nazwe pliku lub sciezke dostepu: konto.txt
Plik zostal otwarty.
Twoja lista zawiera 4 darczyncow.
-858993460 zl.
-858993460 zl.
-858993460 zl.
-858993460 zl.