Przyczyną błędu był ten zapis
int d[1000],
gdy w pliku było mniej cyfr niż 1000
int d[1000] = {0}
tablica jest inicjowana i wszystkim 1000-cu wierszy (indeksom) przypisana zostaje wartość zero "0"
Moja propozycja:
liczby.txt
453
79
277
43
109
725
643
274
944
653
620
714
343
505
205
535
53
772
130
760
816
608
190
841
60
463
716
72
542
624
733
502
707
579
604
519
154
691
845
886
612
685
364
862
123
652
528
637
586
758
429
353
518
92
563
592
221
522
872
867
339
578
717
891
80
661
65
542
76
809
45
442
399
788
765
849
167
185
195
527
768
490
786
816
74
275
857
959
603
853
46
668
347
463
233
165
356
11
306
637
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream plik;
int d[1000]={0}, a=0, max=0;
plik.open("liczby.txt", ios::in);
if (plik.good() == false)
{
cout << "Plik nie jest dostepny!";
exit(EXIT_FAILURE);
}
while (!plik.eof())
{
plik >> d[a];
if (max<d[a]) max=d[a];
a++;
}
plik.close();
for (int i=0; i<a; ++i)
{
cout.width(4); cout << d[i] << " "; // równe kolumny liczb co 4 znaki + spacja ( << " " )
if ((i+1)%10 == 0) cout << endl; // 10 liczb w jednej linii w cout,
}
cout << "\nmax = " << max;
plik.open("wynik5.txt", ios::out);
{
plik << max << endl;
}
plik.close();
return 0;
}
[ C++ set all array values to {0} ] [ exit (EXIT_FAILURE) ]
[ Sterowanie formatem: cout.width() ]