• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program ma pobrać z pliku liczby i wpisać do następnego największą z tych liczb.

Object Storage Arubacloud
+1 głos
342 wizyt
pytanie zadane 22 stycznia 2021 w C i C++ przez BedrisK Użytkownik (600 p.)

Algorytm ma zapisać w największą liczbę z 1 pliku do 2 pliku txt, ale tego nie robi. Tylko wypisuje liczby w kompilatorze.

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream plik;
    plik.open("liczby.txt", ios::in);
    int d[1000], a=0, max;
    max=d[0];

    if(plik.good()==false)
    {
          cout << "Plik nie jest dostepny!";
    }

    else
    {
          while(!plik.eof())
          {
                    plik >> d[a];
                    a++;
          }
    }

    plik.close();

    for(int i=1; i<1000; i++)
    {
              if(max<d[i])
              {
                        max=d[i];
              }
    }

    for(int j=0; j<a-1; j++)
    {
              cout << d[j] << endl;
    }

    plik.open("wynik5.txt", ios::out);

    for(int j=0; j<a-1; j++)
    {
              cout << d[j] << endl;
    }

    plik.close();

    return 0;
}

 

komentarz 22 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Pokaż mi gdzie w kodzie zapisujesz cokolwiek do drugiego pliku.
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
przywrócone 22 stycznia 2021 przez BedrisK
plik.open("wynik5.txt", ios::out);

 

    for(int j=0; j<a-1; j++)

    {

              cout << d[j] << endl;

    }
komentarz 22 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Nie.. Tutaj tylko otwierasz plik i wypisujesz na standardowe wyjście (w tym przypadku do konsoli)  jakieś tam liczby.
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
a ok, a jak to zmienić aby liczby nie byly wypisywane w konsoli tylko w pliku?
1
komentarz 22 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Analogicznie do wczytywania i wypisywania na standardowe wyjście.
cout << cos; //wypisze
cin>> cos; //wpisze

wiec skoro
plik>>cos;
pobiera z pliku, to jak zrobisz zapisanie do pliku?
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
czyli zapisując trzeba zmienić strzałki te?
komentarz 22 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
yup, do tego się to w zasadzie sprowadza.
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
a zamiast cout trzeba wpisać plik, bo przesyła jakby do tekstu aby się wyświetlił
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
ok, zmieniłem to ale teraz zamiast zapisać tej największej liczby to wpisuje wszystkie w drugim pliku
komentarz 22 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
tak, bo wpisujesz wszystkie
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
a jak zmienić aby wpisywał tylko jedną liczbę?
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
potrzebuje pomocy
komentarz 23 stycznia 2021 przez VBService Ekspert (253,420 p.)
cout << d[j] << endl;

na

plik << max;

 

komentarz 23 stycznia 2021 przez BedrisK Użytkownik (600 p.)
niestety, ale dalej jest błąd

1 odpowiedź

0 głosów
odpowiedź 24 stycznia 2021 przez VBService Ekspert (253,420 p.)
wybrane 29 stycznia 2021 przez BedrisK
 
Najlepsza

Przyczyną błędu był ten zapis

int d[1000],

gdy w pliku było mniej cyfr niż 1000  wink

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() ]

Podobne pytania

0 głosów
1 odpowiedź 189 wizyt
0 głosów
0 odpowiedzi 183 wizyt
pytanie zadane 17 października 2023 w Python przez Jakub005 Początkujący (310 p.)
0 głosów
1 odpowiedź 520 wizyt
pytanie zadane 3 listopada 2020 w C i C++ przez Niepokonana7999 Bywalec (2,270 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...