Bob Temat założony przez niniejszego użytkownika |
Problem z Code Block » 2017-10-15 01:22:36 Witam, otóż spotkałem się z nie typowym problemem, którego rozwiązania nie udało mi się znaleźć. Miałem za zadanie napisać program, który co 5 wyraz z tekstu wstawiłby wyraz wpisany przez użytkownika. Wszystko fajnie, ale zauważyłem, że gdy odpalam program w Code Blocku, to on zamiast dopisać wyraz pisze go na "włączonym insert". Np: W pliku znajduje się: Bob Bob2 Bob3 Bob4 Bob5 Bob6 Bob7 Bob8 Bob9 Bob10, program wpisuje co 5 wyraz "trzy", a o to wynik: Bob Bob2 Bob3 Bob4 Bob5 trzyBob6 Bob7 Bob8 Bob9 trzy0. Dodam, że na komputerze mojego kolegi, ze świeżo pobranym Code Blockiem (ja swój z tego powodu z reinstalowałem), ten błąd nie wyskakuje i on otrzymuje poprawny wynik: Bob Bob2 Bob3 Bob4 Bob5 trzy Bob6 Bob7 Bob8 Bob9 Bob10 trzy Kiedy wysłał mi swój main.exe, a ja odpaliłem również otrzymałem poprawny działanie programu, ale jak odpalam poprzez swój main.exe/kompilator otrzymuje powyższy błąd. Skoro program identyczny, zakładam, że przyczyna tkwi w kompilatorze, ale, że go usunąłem i pobrałem na nowo, nie mam pojęcia co może być przyczyną. Czy ktoś się z takim czymś spotkał/ma pomysł na rozwiązanie tego problemu? Byłbym bardzo wdzięczny. |
|
YooSy |
» 2017-10-15 09:18:54 Na przykład kodu można liczyć, czy mamy zgadywać co jest źle napisane. Nie jest to wina CB jak w tytule. |
|
Bob Temat założony przez niniejszego użytkownika |
» 2017-10-15 12:08:50 Nie jest to też wina kodu, co wynika z tego co napisałem powyżej. Ja i kolega mieliśmy dokładnie TEN SAM kod. Przed chwilą nawet napisał mi on totalnie uproszczoną wersję kodu, żeby się upewnić i problem jest dokładnie ten sam. Mu działa, a mi nie z dokładnie tym samym problemem, mi "pisze na insert", a mu działa jak powinno. Przykład kodu, na którym to sprawdziliśmy:
#include <iostream> #include <fstream> using namespace std;
int main() { fstream bob,bob2;
bob.open("bob.txt",ios::in); bob2.open("bob2.txt",ios::out); if(bob.good() == true) cout<<"koks"; while(!bob.eof()){ string b1,b2,b3,b4,b5,cos; cin>>cos; bob>>b1; bob>>b2; bob>>b3; bob>>b4; bob>>b5; if(bob.eof()){ if(b1!=""){ bob2<<b1<<endl; } if(b2!=""){ bob2<<b2<<endl; } if(b3!=""){ bob2<<b3<<endl; } if(b4!=""){ bob2<<b4<<endl; } if(b5!=""){ bob2<<b5<<endl; } break; }
bob2<<b1<<endl<<b2<<endl<<b3<<endl<<b4<<endl<<b5<<endl<<cos<<endl; } return 0; }
|
|
Luq |
» 2017-10-15 12:38:06 Nie jest to też wina kodu, co wynika z tego co napisałem powyżej. |
I tu się mylisz, bo ten kod nie ma prawa działać tak jak go opisałeś. |
|
Bob Temat założony przez niniejszego użytkownika |
» 2017-10-15 12:39:23 Źle skopiowałem. Wpisz ponownie. Dlatego, że jest to pętla w tym przypadku musisz napisać ten wyraz x razy, dopóki nie dojdziesz do końca tekstu. |
|
Luq |
» 2017-10-15 12:47:21 Plik wynikowy będzie się różnił w zależności od tego czy za ostatnim wyrazem w pliku wstawisz jakiś znak biały np. przejście do nowej linii. Może stąd te różnice między wynikami twoimi a twojego kolegi. |
|
Bob Temat założony przez niniejszego użytkownika |
» 2017-10-15 13:33:38 Dobra, ja nie wiem co napisać. To jest coś czego nigdy nie zrozumiem. Skopiowałem ten powyższy kod jeszcze raz odpaliłem i... wszystko działa!?. Odpaliłem ten wczorajszy, który miał problem ze wstawianiem z "insertem" i... on też działa. Zmieniło się nic. Tak jak moja historia na informatyce, gdzie kod nie działał, a ja nie mogłem doszukać się błędu, po dwóch dniach na kolejnej informatyce już działał... Dzięki za pomoc. Temat można zamknąć. |
|
« 1 » |