zeek918 Temat założony przez niniejszego użytkownika |
Funkcja wyswietlajaca jedynie napis » 2017-09-14 19:47:09 Witam Zainteresowałem się dzisiaj tworzeniem programów złożonych z kilku plików. Wszystko ładnie lata, mam plik main.cpp ktory stanowi kregosłup, test.cpp i test.hpp. Pytanie moje polega na tym jak napisać funkcję w test.cpp której zadaniem będzie wyświetlanie napisu. Próbowałem wpisać do funkcji: cout << "To jest napis" << endl; ale program odrzuca działanie i wyśiwetla mi komunikat "Id returned 1 exit status" w pliku Makefile.win Proszę o pomoc. |
|
maly7 |
» 2017-09-14 20:06:25 Podaj całą zawartość pliku cpp. Nie możesz po prostu wstawić std::cout, musisz umieścić go w jakiejś funkcji itp. |
|
zeek918 Temat założony przez niniejszego użytkownika |
» 2017-09-14 20:14:41 [CPP] #include <iostream> #include <conio.h> #include <string> #include <windows.h> #include <cstdlib> #include "test.hpp"
using namespace std; int a, b;
void funkcja_1() { cout << "Dziala funkcja_1()" << endl; cin >> a; cin >> b; if ( a > b ) { cout << "Program dziala" << endl; } else { cout << "Program nie dziala" << endl; } }
void funkcja_2() { HANDLE hOut; string krok; string S, W, N, E; SetConsoleTextAttribute( hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY ); cout << "Dziala funkcja 2" << endl; cin >> krok; if (krok == S) { cout << "Jesteś w S" << endl; } if (krok == W) { cout << "Jesteś w W" << endl; } if (krok == N) { cout << "Jesteś w N" << endl; } if (krok == E) { cout << "Jesteś w E" << endl; }
} [/CPP]
Proszę bardzo. funkcja_1(); działa, wcześniej w funkcja_2() był tylko cout, teraz zmieniłem na coś takiego i wciąż pojawia się ten sam problem. |
|
maly7 |
» 2017-09-14 21:16:39 Co do funkcji_2 to troche bez sensu: string krok; string S, W, N, E; ... cin >> krok; if( krok == S ) O ile krok pobierasz, to zmienne S, W, N, E nie mają wartości więc do czego przyrównujesz? Ale to nie jest powodem problemu :D Jak to kompilujesz? Najlepiej pokaż jeszcze plik hpp i main :D |
|
zeek918 Temat założony przez niniejszego użytkownika |
» 2017-09-14 21:26:50 Wiem że treść którą wkleiłeś jest z mojej strony bez sensu, ale ratuję się każdym możliwym rozwiązaniem, próbuje wszystiego, poza tym jestem baaardzo początkujący xd
Plik main : #include <iostream> #include <conio.h> #include <string> #include <windows.h> #include <cstdlib> #include "test.hpp"
using namespace std;
int a;
int main() {
cin >> a; if ( a == 1) { funkcja_1(); } else { funkcja_2(); }
}
Plik hpp: #ifndef test_hpp #define test_hpp
void funkcja_1(); void funkcja_2();
#endif
Powiedz mi prosze jak zrobić ramkę na kod żeby to ładnie wyglądało tutaj na stronie ;p |
|
latajacaryba |
» 2017-09-14 21:29:12 |
|
zeek918 Temat założony przez niniejszego użytkownika |
» 2017-09-14 21:32:42 No to do szczęścia brakuje mi juz tylko rozwiazania problemu ;p Dla jasności wstawie wszystki jeszcze raz: #ifndef test_hpp #define test_hpp
void funkcja_1(); void funkcja_2();
#endif
#include <iostream> #include <conio.h> #include <string> #include <windows.h> #include <cstdlib> #include "test.hpp"
using namespace std; int a, b; string krok, S;
void funkcja_1() { cout << "Dziala funkcja_1()" << endl; cin >> a; cin >> b; if( a > b ) { cout << "Program dziala" << endl; } else { cout << "Program nie dziala" << endl; } }
void funkcja_2() { cin >> krok; if( krok == S ) { cout << "tekst " << endl; } else { cout << "tekst2" << endl; } }
#include <iostream> #include <conio.h> #include <string> #include <windows.h> #include <cstdlib> #include "test.hpp"
using namespace std;
int a;
int main() { cin >> a; if( a == 1 ) { funkcja_1(); } else { funkcja_2(); } }
|
|
Luq |
» 2017-09-14 22:10:44 W obu plikach źródłowych definiujesz zmienną globalną int a; co musi się skończyć błędem linkera. Jak koniecznie chcesz współdzielić zmienne między plikami źródłowymi, to w jednym pliku zostaw int a; a w drugim wpisz extern int a; , jednak lepiej byłoby przekazywać zmienne jako argumenty funkcji. |
|
« 1 » 2 |