Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcja wyswietlajaca jedynie napis

Ostatnio zmodyfikowano 2017-09-14 22:31
Autor Wiadomość
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.
P-164877
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.
P-164878
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.
P-164879
maly7
» 2017-09-14 21:16:39
Co do funkcji_2 to troche bez sensu:
C/C++
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

P-164883
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
P-164885
latajacaryba
» 2017-09-14 21:29:12
@up
[cpp] kod [/cpp]
P-164887
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:

C/C++
//test.hpp
#ifndef test_hpp
#define test_hpp

void funkcja_1();
void funkcja_2();


#endif

C/C++
//test.cpp
#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;
    }
   
}

C/C++
//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();
    }
   
}
P-164888
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.
P-164889
« 1 » 2
  Strona 1 z 2 Następna strona