[C++]Suma par liczb z pliku

KillerQueen_
Użytkownik
Użytkownik
Posty: 97
Rejestracja: 19 lut 2011, o 21:23
Płeć: Kobieta
Lokalizacja: Biegun Północny

[C++]Suma par liczb z pliku

Post autor: KillerQueen_ »

Witam!
Mam problem ze zrobieniem zadania:
W pliku są pary liczb oddzielone spacją, należy napisać program, który doda do siebie te pary liczb i zapisze je do nowego pliku.
I jeszcze 2:
Ile jest liczb, np. k(po wpisaniu tej liczby z klawiatury) w pliku i różnica między największą i najmniejszą liczbą z tego pliku.

Bardzo proszę o pomoc!
abc666

[C++]Suma par liczb z pliku

Post autor: abc666 »

1. tworzysz dwa obiekty obiekt ifstream i ofstream, otwierasz plik z danymi i ten na wyniki, odczytujesz normalnie dane operatorem >> tak samo jak cin, zapisujesz normalnie operatorem << tak jak przy cout. Cały program zajmie kilkanaście linijek. Jeśli będziesz miał problemy to wklej koniecznie kod, który udało ci się już napisać.

2. Analogicznie, obsługa pliku odbywa się tak samo jak standardowego wejścia.
theFunnyAEI
Użytkownik
Użytkownik
Posty: 16
Rejestracja: 13 kwie 2011, o 19:43
Płeć: Mężczyzna
Lokalizacja: Gliwice
Pomógł: 2 razy

[C++]Suma par liczb z pliku

Post autor: theFunnyAEI »

AD 1.
/* NIE OKRESLILES JAKIEGO TYPU SA LICZBY W PLIKU, ZAKLADAM ZE INT */

Kod: Zaznacz cały

#include <fstream>
#include <iostream>
[...]

void funA(char* wejscie, char* wyjscie)
{
/*zmienne pomocnicze*/
int A, B, WYN;

/*wczytanie liczb z pliku */
ifstream dataWE(wejscie,ios::in);
dataWE>>A>>B; // operator >> domyslnie ma ustawiona spacje jako znak oddzielajacy wartosci
dataWE.close;

/*dodanie*/
WYN = A+ B;

/*zapis do pliku wyniku*/
ofstream dataWY(wyjscie,ios::out);
dataWY<<WYN;
dataWY.close;

}

AD 2.

Kod: Zaznacz cały

int RoznicaMinMax(char *wejscie)
{
int k, *tabLiczb, min, max, WYN;
cout<<"Podaj k"<<endl;
cin>>k;

/*alokowanie pamieci na liczby*/
tabLiczb = new int[k];

/*wczytanie liczb z pliku */
ifstream dataWE(wejscie,ios::in);
for(int i=0;i<k;i++){
		data>>tabLiczb[i];
       }
/*szukanie Min i Max */
min = tabLiczb[0];
max = tabLiczb[0];
for(int i=1;i<k;i++){
    if(min> tabLiczb[i]){
       min=tabLiczb[i];
    }
    else{
       if(max<tabLiczb[i]){
          max=tabLiczb[i];
       }
     }
WYN=max-min;
cout<<"Roznica wynosi: "<<WYN; 
return WYN;
}
Ostatnio zmieniony 16 kwie 2011, o 17:06 przez Afish, łącznie zmieniany 1 raz.
Powód: Kod umieszczaj w [code]
ODPOWIEDZ