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

funkcja void, zamiana liczby dziesietnej na binarna, blad kompilacji

Ostatnio zmodyfikowano 2014-05-02 21:22
Autor Wiadomość
shadow193
Temat założony przez niniejszego użytkownika
funkcja void, zamiana liczby dziesietnej na binarna, blad kompilacji
» 2014-05-02 21:13:44
Witam, mam problem jak w temacie, mianowicie podczas pisania prostego algorytmu zamiany lizcby dziesietnej calkowitej na binarna moj program nie kompiluje sie z niejasnych dla mnie przyczyn.

Oto kod :
C/C++
#include<iostream>
using namespace std;

void zamiana( int liczba )
{
    int i = 0, tab[ 31 ];
    while( liczba )
    {
        tab[ i++ ] = liczba % 2;
        liczba /= 2;
    }
    for( int j = i - 1; j >= 0; j-- )
         cout << tab[ j ];
    //return 0;           
   
}
int main()
{
    int liczba;
    cin >> liczba;
    cout << zamiana( liczba );
    cout << endl;
    getchar();
    return 0;
}



a tutaj log kompilacji :
Compiler: Default compiler
Executing  g++.exe...
g++.exe "C:\Documents and Settings\mateusz\Pulpit\zamiana.cpp" -o "C:\Documents and Settings\mateusz\Pulpit\zamiana.exe"    -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include"  -I"C:\Dev-Cpp\include\c++\3.4.2\backward"  -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32"  -I"C:\Dev-Cpp\include\c++\3.4.2"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib"
C:\Documents and Settings\mateusz\Pulpit\zamiana.cpp: In function `int main()':
C:\Documents and Settings\mateusz\Pulpit\zamiana.cpp:21: error: no match for 'operator<<' in 'std::cout << zamiana(liczba)'
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:63: note: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>&(*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:74: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ios<_CharT, _Traits>&(*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:86: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base&(*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:121: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:155: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:98: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:178: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:189: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:193: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:204: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]

C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:179: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:214: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:238: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:219: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:261: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:284: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:307: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:449: note:                 std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:505: note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char) [with _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:460: note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char) [with _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:465: note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char) [with _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:567: note:                 std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/bits/ostream.tcc:612: note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*) [with _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/ostream:499: note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*) [with _Traits = std::char_traits<char>]

C:/Dev-Cpp/include/c++/3.4.2/ostream:504: note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*) [with _Traits = std::char_traits<char>]

Execution terminated

Sednem sprawy jest to ze gdy funkcja zamiana jest typu int wszystko jest ok, za wyjatkiem zera ktore zwraca na koncu, natomiast funkcja void wyrzuca blad w kompilacji i pytanie : co jest nie tak?
Bede wdzieczny za pomoc, prosze o wyrozumialosc :)
Z gory dziekuje, pozdrawiam :)
P-109123
SeaMonster131
» 2014-05-02 21:17:23
C/C++
cout << zamiana( liczba );
Chcesz wypisać wynik funkcji, która jest typu void, czyli tym samym nic nie zwraca.
P-109124
shadow193
Temat założony przez niniejszego użytkownika
» 2014-05-02 21:20:15
Zatem pytanie brzmi, dlaczego to działa :
C/C++
#include <cstdlib>
#include <iostream>
using namespace std;

void dec_to_bin( int liczba )
{
    int i = 0, tab[ 31 ];
   
    while( liczba ) //dopóki liczba będzie różna od zera
    {
        tab[ i++ ] = liczba % 2;
        liczba /= 2;
    }
   
    for( int j = i - 1; j >= 0; j-- )
         cout << tab[ j ];
   
}

int main()
{
    int liczba;
   
    cout << "Podaj liczbę: ";
    cin >> liczba;
   
    cout << liczba << " po zamianie na postać binarną: ";
    dec_to_bin( liczba );
    cout << endl;
   
    system( "pause" );
    return 0;
}
P-109126
SeaMonster131
» 2014-05-02 21:21:09
C/C++
cout << liczba << " po zamianie na postać binarną: ";

dec_to_bin( liczba );
Bo tutaj jej nie wypisujesz poprzez cout.
P-109127
shadow193
Temat założony przez niniejszego użytkownika
» 2014-05-02 21:22:58
Serdecznie dziękuję za pomoc :) temat do zamknięcia :)
P-109129
« 1 »
  Strona 1 z 1