Pomoc 2 programy, wyprowadzanie i wprowadzanie danych z plików
Ostatnio zmodyfikowano 2020-11-03 20:40
Ziomek321123 Temat założony przez niniejszego użytkownika |
Pomoc 2 programy, wyprowadzanie i wprowadzanie danych z plików » 2020-11-03 14:50:05 Witam, Wiem że trochę głupia prośba ale proszę o pomoc z napisaniem 2 programów bym później mógł przeanalizować ich działanie i zrozumieć jak tworzyć podobne programy. Pozdrawiam 1. Program odczytuje wszystkie wartości z pliku tekstowego wartosc.txt i zapisuje wartości w dwóch plikach: parzyste w pliku parzyste.txt, a nieparzyste w pliku nieparzyste.txt
2. Załóżmy, że w pliku o nazwie prostokąt.txt zapisane są wymiary prostokąta w dwóch wierszach. Napisz program, który odczyta dwie liczby z pliku prostokat.txt i obliczy pole prostokąta o bokach czytanych z pliku. Napisz też obsługę błędów, gdyby nie powiodła się próba odczytu z pliku. |
|
tsutsumu |
» 2020-11-03 17:57:20 prosze to jest pierwsza prosba, sam jestem w miare poczatkujacy ale program dziala, napewno da sie go bardziej zoptymalizowac ale mozna z niego wyciagnac wnioski. a drugi napisz w operaciu o to co ci wysalalem, wszystko zo jest w nim wystarczy ci by napisac ten drugi, oprocz wzoru ;) a*b :P jesli cos nie dziala to daj znac moze sie sam walnalem w czyms, albo starczy kolega przyjdzie i mnie poprawi ^^ kto wie :D #include <iostream> #include <fstream> #include <string> #include <stdlib.h> using namespace std;
bool rozdzielam( int t ) { int reszta; reszta = t % 2; if( reszta == 0 ) return false; else return true; }
string linia; int nr_linii[ 100 ]; int i = 0; int main() { fstream plik, plik1, plik2; plik.open( "wartosc.txt", ios::in ); if( plik.good() == false ) cout << "PLik nie isnieje, upewnij sie ze plik jest obok pliku txt o tej samej nazwie co w nawiasie wyzej"; while( getline( plik, linia ) ) { nr_linii[ i ] = atoi( linia.c_str() ); i++; } plik.close(); plik1.open( "parzyste.txt", ios::out ); plik2.open( "nieparzyste.txt", ios::out ); int j = 0; do { int sprawdzana; sprawdzana = nr_linii[ j ]; if( rozdzielam( sprawdzana ) == false ) plik1 << nr_linii[ j ] << endl; if( rozdzielam( sprawdzana ) == true ) plik2 << nr_linii[ j ] << endl; j++; } while( j < i ); plik1.close(); plik2.close(); return 0; }
|
|
pekfos |
» 2020-11-03 18:26:20 Trochę przekombinowane. Nie zadziała dla więcej niż 100 liczb, oraz gdy będzie więcej niż jedna liczba w linii. Nie ma potrzeby trzymać wszystkich liczb w pamięci, a do wczytywania wystarczy zwykłe >>. while( plik_wej >> liczba ) { if( liczba % 2 == 0 ) plik_parzyste << liczba << '\n'; else plik_nieparzyste << liczba << '\n'; } |
|
tsutsumu |
» 2020-11-03 20:40:15 faktycznie, zdecydowanie lepszy, nie wiedzialem ze mozna w ten sposob tego napisac. |
|
« 1 » |