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!
[C++]Suma par liczb z pliku
-
- Użytkownik
- Posty: 97
- Rejestracja: 19 lut 2011, o 21:23
- Płeć: Kobieta
- Lokalizacja: Biegun Północny
[C++]Suma par liczb z pliku
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.
2. Analogicznie, obsługa pliku odbywa się tak samo jak standardowego wejścia.
-
- 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
AD 1.
/* NIE OKRESLILES JAKIEGO TYPU SA LICZBY W PLIKU, ZAKLADAM ZE INT */
AD 2.
}
/* 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]
Powód: Kod umieszczaj w [code]