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

[C++] error: return-statement with a value, in function returning 'void'

Ostatnio zmodyfikowano 2014-03-22 15:17
Autor Wiadomość
jasiek1309
Temat założony przez niniejszego użytkownika
[C++] error: return-statement with a value, in function returning 'void'
» 2014-03-22 14:50:14
Napisałem taki oto program i nie wiem dlaczego przy komendzie return wyskakuje mi błąd, pewnie jest to coś prostego ale jestem początkujacy wiec wybaczcie.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
void liczenie()
{
    srand( time( NULL ) );
    int a;
    int b = 0;
    int c[ 999 ];
    int wynik;
    do
    {
        a =(( rand() % 7 ) + 4 );
        c[ b ] = a;
        b++;
    } while( b != 999 );
   
    b = 0;
    do
    {
        wynik = wynik + c[ b ];
        b++;
    } while( b != 999 );
   
    return wynik;
}
int main()
{
    std::cout << liczenie();
}
P-106982
Monika90
» 2014-03-22 15:00:45
void liczenie()
 i
return wynik;
 te dwie rzeczy nie pasują do siebie.
P-106986
jasiek1309
Temat założony przez niniejszego użytkownika
» 2014-03-22 15:00:56
co jest źle z tym tematem?
P-106987
DejaVu
» 2014-03-22 15:02:21
Tytuł powinien w tym przypadku zawierać treść błędu kompilacji.
P-106988
jasiek1309
Temat założony przez niniejszego użytkownika
» 2014-03-22 15:04:41
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp||In function 'void liczenie()':|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|24|error: return-statement with a value, in function returning 'void' [-fpermissive]|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp||In function 'int main()':|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|error: no match for 'operator<<' in 'std::cout << liczenie()'|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note: candidates are:|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|106|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|106|note:   no known conversion for argument 1 from 'void' to 'std::basic_ostream<char>::__ostream_type& (*)(std::basic_ostream<char>::__ostream_type&) {aka std::basic_ostream<char>& (*)(std::basic_ostream<char>&)}'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|115|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ios_type& (*)(std::basic_ostream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>; std::basic_ostream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|115|note:   no known conversion for argument 1 from 'void' to 'std::basic_ostream<char>::__ios_type& (*)(std::basic_ostream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|125|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|125|note:   no known conversion for argument 1 from 'void' to 'std::ios_base& (*)(std::ios_base&)'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|164|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|164|note:   no known conversion for argument 1 from 'void' to 'long int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|168|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|168|note:   no known conversion for argument 1 from 'void' to 'long unsigned int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|172|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|172|note:   no known conversion for argument 1 from 'void' to 'bool'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|93|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char; _Traits = std::char_traits<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|93|note:   no known conversion for argument 1 from 'void' to 'short int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|179|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|179|note:   no known conversion for argument 1 from 'void' to 'short unsigned int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|107|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char; _Traits = std::char_traits<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|107|note:   no known conversion for argument 1 from 'void' to 'int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|190|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|190|note:   no known conversion for argument 1 from 'void' to 'unsigned int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|199|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|199|note:   no known conversion for argument 1 from 'void' to 'long long int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|203|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|203|note:   no known conversion for argument 1 from 'void' to 'long long unsigned int'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|218|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|218|note:   no known conversion for argument 1 from 'void' to 'double'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|222|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|222|note:   no known conversion for argument 1 from 'void' to 'float'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|230|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|230|note:   no known conversion for argument 1 from 'void' to 'long double'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|243|note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|243|note:   no known conversion for argument 1 from 'void' to 'const void*'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|121|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|121|note:   no known conversion for argument 1 from 'void' to 'std::basic_ostream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|546|note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|546|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'const unsigned char*'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|541|note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|541|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'const signed char*'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|528|note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|528|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'const char*'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|323|note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ostream.tcc|323|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'const char*'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|511|note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|511|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   mismatched types 'const _CharT*' and 'void'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|491|note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|491|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'unsigned char'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|486|note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|486|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'signed char'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|480|note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|480|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'char'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|474|note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|474|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   cannot convert 'liczenie()' (type 'void') to type 'char'|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|469|note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\ostream|469|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   deduced conflicting types for parameter '_CharT' ('char' and 'void')|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2750|note: template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&)|
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2750|note:   template argument deduction/substitution failed:|
C:\Users\Jasiek\Desktop\Nowy folder\C++\Cwiczenia.cpp|28|note:   mismatched types 'const std::basic_string<_CharT, _Traits, _Alloc>' and 'void'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
P-106989
jasiek1309
Temat założony przez niniejszego użytkownika
» 2014-03-22 15:10:26
Ale wracając to co zrobić?
P-106990
OczkoSX
» 2014-03-22 15:12:30
Kody wstawiamy w znaczniki. Zmień void liczenie, na typ który ma zwracać funkcja. NP. double liczenie(). VOID NIE ZWRACA ŻADNEJ WARTOŚCI (lepiej zapamiętaj, funkcja void z returnem jest niewłaściwa).
P-106991
DejaVu
» 2014-03-22 15:17:34
http://cpp0x.pl/kursy/Kurs-C++​/Poziom-2​/Funkcje-a-slowo-kluczowe-retu​rn​/339

/edit:
W skrócie: zwracany typ przez Twoją funkcję to void, a ten z kolei mówi, że funkcja nie zwraca wartości. Zmień void na właściwy typ jaki funkcja ma zwracać.
P-106993
« 1 »
  Strona 1 z 1