Odpowiedź :
Odpowiedź:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
string int_string(int liczba){
stringstream ss;
ss << liczba;
return ss.str();
}
int suma_ascii(string linia){
int suma = 0;
for(char& c : linia){
suma += (int)c;
}
return suma;
}
int main(){
string linia;
ofstream wynik_a;
wynik_a.open("./wynik_a.txt");
ofstream wynik_b;
wynik_b.open("./wynik_b.txt");
ofstream wynik_c;
wynik_c.open("./wynik_c.txt");
string min_ascii;
int min_wart;
string max_ascii;
int max_wart;
int suma = 0;
ifstream plik;
plik.open("./lista.txt");
if (plik.is_open()) {
while(getline(plik, linia)){
if(linia.at(linia.length()-1) == 'o'){
wynik_a << linia << endl;
}
suma += linia.length();
int suma_ascii_wynik = suma_ascii(linia);
cout << linia << " - " << suma_ascii_wynik << endl;
if (suma_ascii_wynik < min_wart) {
min_ascii = linia;
min_wart = suma_ascii_wynik;
} else if (suma_ascii_wynik > max_wart) {
max_ascii = linia;
max_wart = suma_ascii_wynik;
}
}
}
wynik_b << int_string(suma);
wynik_c << "minimum: " << min_ascii << " - " << int_string(min_wart) << endl;
wynik_c << "maximum: " << max_ascii << " - " << int_string(max_wart);
plik.close();
wynik_a.close();
wynik_b.close();
wynik_c.close();
return 0;
}
Komentarz:
niestety jest jedna usterka w kodzie co czyta EOT jako najmniejszą liczbę ASCII i nie wiem jak to naprawić
ale większość kodu działa :)