Pomoc z wlasnym programem
Ostatnio zmodyfikowano 2020-05-10 01:18
skupi967 Temat założony przez niniejszego użytkownika |
Pomoc z wlasnym programem » 2020-05-09 16:30:24 Witam. Chcialbym aby ktos pomogl mi edytowac kod zrodlowy programu w ten sposob aby wyswietlaly sie na ekranie i zapisywaly do pliku dane.txt tylko takie slowa wczytane z pliku words.txt ktorych suma wszystkich liter bedzie rowna 11 lub 23(Zarowno przy uzyciu jednej mapy jak i drugiej gdzie wczesniej zdefiniowalem sam jakie poszczegolne litery maja miec wartosci). Nie znam sie na programowaniu, to nie jest zadna praca na zaliczenie. Czas nagli a musze to zrobic, dlatego bede wdzieczny za pomoc jesli ktos pomoze mi w rozwiazaniu problemu. #include <iostream> #include <string> #include <map> #include <cmath> #include <fstream> #include <stdio.h>
using namespace std;
int main() { map < char, int > fiveg, five; fiveg[ 'a' ] = 7; fiveg[ 'b' ] = 8; fiveg[ 'c' ] = 1; fiveg[ 'd' ] = 2; fiveg[ 'e' ] = 3; fiveg[ 'f' ] = 4; fiveg[ 'g' ] = 5; fiveg[ 'h' ] = 6; fiveg[ 'i' ] = 7; fiveg[ 'j' ] = 8; fiveg[ 'k' ] = 9; fiveg[ 'l' ] = 1; fiveg[ 'm' ] = 2; fiveg[ 'n' ] = 3; fiveg[ 'o' ] = 4; fiveg[ 'p' ] = 5; fiveg[ 'q' ] = 6; fiveg[ 'r' ] = 7; fiveg[ 's' ] = 8; fiveg[ 't' ] = 9; fiveg[ 'u' ] = 1; fiveg[ 'v' ] = 2; fiveg[ 'w' ] = 3; fiveg[ 'x' ] = 4; fiveg[ 'y' ] = 5; fiveg[ 'z' ] = 6; five[ 'a' ] = 1; five[ 'b' ] = 2; five[ 'c' ] = 3; five[ 'd' ] = 4; five[ 'e' ] = 5; five[ 'f' ] = 6; five[ 'g' ] = 7; five[ 'h' ] = 8; five[ 'i' ] = 9; five[ 'j' ] = 1; five[ 'k' ] = 2; five[ 'l' ] = 3; five[ 'm' ] = 4; five[ 'n' ] = 5; five[ 'o' ] = 6; five[ 'p' ] = 7; five[ 'q' ] = 8; five[ 'r' ] = 9; five[ 's' ] = 1; five[ 't' ] = 2; five[ 'u' ] = 3; five[ 'v' ] = 4; five[ 'w' ] = 5; five[ 'x' ] = 6; five[ 'y' ] = 7; five[ 'z' ] = 8; FILE * plik; plik = fopen( "words.txt", "r" ); char znak; int sumaj = 0, sumad = 0; ofstream zapis( "dane.txt" ); do { znak = fgetc( plik ); cout << znak; zapis << znak; sumad += fiveg[ znak ]; sumaj += five[ znak ]; if( znak == '\n' ) { if( sumad == 11 || sumad == 23 ) { cout << "G=5: " << sumad << endl << endl; zapis << "G=5: " << sumad << endl; } if( sumaj == 11 || sumaj == 23 ) { cout << "G=7: " << sumaj << endl << endl; zapis << "G=7: " << sumaj << endl; } sumaj = 0, sumad = 0; } } while( znak != EOF ); fclose( plik ); zapis.close(); return 0; }
|
|
pekfos |
» 2020-05-09 17:03:48 Po co ten miks C i C++? Wczytuj dane słowami i je wypisuj słowami. Teraz wypisujesz każdy wczytany znak, gdy nie da się nawet stwierdzić czy powinien być wypisany. std::string slowo; while( plik_wej >> slowo ) { if( wypisac ) { std::cout << slowo << '\n'; plik_wyj << slowo << '\n'; } } |
|
skupi967 Temat założony przez niniejszego użytkownika |
» 2020-05-09 18:47:48 Tak jak Ci mowilem przyjacielu jestem noga z programowania. Potrzebuje tego ze sie tak brzydko wyraze na gwalt. Zabrzmi to troche zalosnie ale czy nie moglbys zedytowac tego kodu ktory wkleilem? Zrobisz dobry uczynek a ja bede wdzieczny. Potrzebuje cos policzyc, kilka slow. To nie jest zadna praca na zaliczenie, zebys nie myslal. To taka mini gematria do uzytku wlasnego. |
|
pekfos |
» 2020-05-09 20:39:13 Więc skąd pośpiech? std::ifstream plik_wej( "aaaa" ); std::ofstream plik_wyj( "bbbb" ); std::string slowo;
while( plik_wej >> slowo ) { int sumaj = 0, sumad = 0; for( char znak: slowo ) { sumad += fiveg[ znak ]; sumaj += five[ znak ]; } if( sumad == 11 || sumad == 23 || sumaj == 11 || sumaj == 23 ) { std::cout << slowo << '\n'; plik_wyj << slowo << '\n'; } } Reszty kodu nie chciało mi się kopiować. |
|
skupi967 Temat założony przez niniejszego użytkownika |
» 2020-05-10 01:18:55 Dziekuje za pomoc. Jestem wdzieczny:) |
|
« 1 » |