skupi967 Temat założony przez niniejszego użytkownika |
Pomoc w edycji programu » 2020-06-12 15:53:22 Witam. Potrzebuje pomocy z przerobieniem tego programu. Nie znam sie w ogole na C++ a musze przeszukac duza baze danych wiec prosilbym o gotowe rozwiaznaie. Bylbym bardzo wdzieczny. Wszystko dziala tak jak powinno ale tekst ktory wczytuje z pliku words.txt jest rozdzielony separatorem , i chce by program pobierajac tekst z pliku .txt po napotkaniu separatora , przeszedl do nowej lini, dalej pobieral tekst i tak caly czas. #include <iostream> #include <string> #include <map> #include <cmath> #include <fstream> #include <stdio.h>
using namespace std;
int main() { map < char, int > pythagorean; pythagorean[ 'a' ] = 7; pythagorean[ 'b' ] = 8; pythagorean[ 'c' ] = 1; pythagorean[ 'd' ] = 2; pythagorean[ 'e' ] = 3; pythagorean[ 'f' ] = 4; pythagorean[ 'g' ] = 5; pythagorean[ 'h' ] = 6; pythagorean[ 'i' ] = 7; pythagorean[ 'j' ] = 8; pythagorean[ 'k' ] = 9; pythagorean[ 'l' ] = 1; pythagorean[ 'm' ] = 2; pythagorean[ 'n' ] = 3; pythagorean[ 'o' ] = 4; pythagorean[ 'p' ] = 5; pythagorean[ 'q' ] = 6; pythagorean[ 'r' ] = 7; pythagorean[ 's' ] = 8; pythagorean[ 't' ] = 9; pythagorean[ 'u' ] = 1; pythagorean[ 'v' ] = 2; pythagorean[ 'w' ] = 3; pythagorean[ 'x' ] = 4; pythagorean[ 'y' ] = 5; pythagorean[ 'z' ] = 6; ifstream plik_wej( "words.txt" ); ofstream plik_wyj( "WYNIKI.txt" ); string slowo; int ilosc = 0; while( plik_wej >> slowo ) { int sumaj = 0; for( char znak: slowo ) { sumaj += pythagorean[ znak ]; } if( sumaj == 11 ) { cout << slowo << "(" << sumaj << ")" << '\n' << "Pythagorean: " << '\t'; plik_wyj << "Pythagorean: " << '\t' << slowo << " = " << sumaj << endl; ilosc++; } } cout << "\n\n Laczna ilosc znalezionych slow: " << ilosc << '\n'; plik_wyj << "\n\n Laczna ilosc znalezionych slow: " << ilosc << '\n'; return 0; }
|
|
pekfos |
» 2020-06-12 16:52:02 |
|
skupi967 Temat założony przez niniejszego użytkownika |
» 2020-06-12 17:35:56 #include <iostream> #include <string> #include <map> #include <cmath> #include <fstream> #include <stdio.h> #include <sstream> using namespace std;
int main() { map < char, int > pythagorean; pythagorean[ 'a' ] = 7; pythagorean[ 'b' ] = 8; pythagorean[ 'c' ] = 1; pythagorean[ 'd' ] = 2; pythagorean[ 'e' ] = 3; pythagorean[ 'f' ] = 4; pythagorean[ 'g' ] = 5; pythagorean[ 'h' ] = 6; pythagorean[ 'i' ] = 7; pythagorean[ 'j' ] = 8; pythagorean[ 'k' ] = 9; pythagorean[ 'l' ] = 1; pythagorean[ 'm' ] = 2; pythagorean[ 'n' ] = 3; pythagorean[ 'o' ] = 4; pythagorean[ 'p' ] = 5; pythagorean[ 'q' ] = 6; pythagorean[ 'r' ] = 7; pythagorean[ 's' ] = 8; pythagorean[ 't' ] = 9; pythagorean[ 'u' ] = 1; pythagorean[ 'v' ] = 2; pythagorean[ 'w' ] = 3; pythagorean[ 'x' ] = 4; pythagorean[ 'y' ] = 5; pythagorean[ 'z' ] = 6; ifstream plik_wej( "words.txt" ); ofstream plik_wyj( "WYNIKI.txt" ); string slowo; int ilosc = 0; while( getline( plik_wej, slowo, plik_wej.widen( ',' ) ) >> slowo ) { int sumaj = 0; for( char znak: slowo ) { sumaj += pythagorean[ znak ]; } if( sumaj == 11 ) { cout << slowo << "(" << sumaj << ")" << '\n' << "Pythagorean: " << '\t'; plik_wyj << "Pythagorean: " << '\t' << slowo << " = " << sumaj << endl; ilosc++; } } cout << "\n\n Laczna ilosc znalezionych slow: " << ilosc << '\n'; plik_wyj << "\n\n Laczna ilosc znalezionych slow: " << ilosc << '\n'; return 0; }
Dziala tylko ze odwrotnie. Teraz pobiera to co jest za przecinkiem a pomija to co jest przed nim |
|
pekfos |
» 2020-06-12 19:29:05 while( getline( plik_wej, slowo, plik_wej.widen( ',' ) ) >> slowo )
|
while( getline( plik_wej, slowo, plik_wej.widen( ',' ) ) )
|
|
skupi967 Temat założony przez niniejszego użytkownika |
» 2020-06-12 20:00:39 Ma byc tak while( getline( plik_wej, slowo, plik_wej.widen( ',' ) ) >> slowo ) czy tak while( getline( plik_wej, slowo, plik_wej.widen( ',' ) ) ) ? W jednym i drugim przypadku zle dziala. W pierwszym po pierwszym napotkanym przecinku program konczy dzialanie, nie sprawdza dalej a w drugim przypadku nie wyswietla wszystkich wyrazow: z wczytywanych danych dokladnie takich: ace, bull baal noun nulled, noun kupa, asdasd aligator pokazalo wyniki tylko dla Pythagorean: bull = 11 Pythagorean: noun = 11 Czyli dalej pokazuje wyniki za przecinkiem a nie przed bo np. ace ma tez wartosc = 11 |
|
pekfos |
» 2020-06-12 20:18:39 Wszystko dziala tak jak powinno ale tekst ktory wczytuje z pliku words.txt jest rozdzielony separatorem , i chce by program pobierajac tekst z pliku .txt po napotkaniu separatora , przeszedl do nowej lini, dalej pobieral tekst i tak caly czas. |
Czyli jak rozumiem chcesz ignorować resztę linii, po przecinku? Wtedy getline() (bez 3. argumentu) żeby wczytać tekst liniami i w każdej linii szukaj przecinka ( linia.find()) i jeśli jest, to usuń resztę napisu od tego momentu. |
|
skupi967 Temat założony przez niniejszego użytkownika |
» 2020-06-12 20:46:17 Tak, dokladnie tak.
Wykonalbys to za mnie? Nie ogarniam juz nic C++. Kiedys w szkole sie uczylem ale to bylo dawno. To dla dobra ludzkosci. Napisze Ci chociaz i tak nie uwierzysz. 12 grudnia 2020 bedzie biblijny Armageddon, koniec swiata. Ja jestem reinkarnacja Henocha/Noe/Adama. Matrix jest realny i moim zadaniem jest z niego wyciagnac ludzi. Uswiadomic. Ten program jest mi potrzebny do mojej pracy nad ktora pracuje juz 4 miesiace. Brzmi nierealnie ale gwarantuje Ci ze przed listopadem uslyszysz o mojej pracy jak i caly swiat i wtedy sobie o mnie przypomnisz. Bede Ci wdzieczny:)
Ps. Program ma sluzyc do gematrii - zakazana wiedza z ogrodu Eden, sekretny jezyk Pana Boga:) Ludzie powroca do ogrodu Eden bez smierci, smutku, pieniedzy, chorob itd:) |
|
pekfos |
» 2020-06-12 21:04:02 |
|
« 1 » 2 3 |