Ajattelin tehdä huviksen tälläisen kivan varastoija-ohjelman, mutta koodaus tyssäsi jo aika alussa... valittaa whilestä ja jostain muustakin.
#include <iostream> #include <stdio.h> using namespace std; int main(int argc, char *argv[]) { int *vastaus; bool *lopeta; lopeta = false; while(lopeta == true) { printf("Varastoija 0.1 \n"); printf("Menu: \n"); printf("1) Nayta varaston sisalto \n"); printf("2) Lopeta ohjelman kaytto \n"); cin.get(vastaus); switch (vastaus) { case 1: break; case 2: lopeta = true; break; } } return 0; }
Pikaisesti silmäisten, virheet aiheuttaa se että määrittelet muuttujasi osoittimina (*) etkä ns. kunnon muuttujina. Eli nakkaa ne *-merkit pois.
Tuolloin tuo cin.get-systeemi menee muotoon cin.get(&vastaus) (& antaa muuttujan osoitteen).
Kokeileppa:
while(!lopeta == true) {
Toi cin.get(&vastaus) ei toimi Dev-C++:ssassa
Mitä kaikkea se kääntäjä sitten valittaa?
C:\Dev-Cpp\varastoija\main.cpp In function `int main(int, char**)':
16 C:\Dev-Cpp\varastoija\main.cpp no matching function for call to `std::basic_istream<char, std::char_traits<char> >::get(int&)'
error C:\Dev-Cpp\include\c++\3.3.1\bits\istream.tcc:514 candidates are: typename _Traits::int_type std::basic_istream<_CharT, _Traits>::get() [with
546 C:\Dev-Cpp\include\c++\3.3.1\bits\istream.tcc std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT,
580 C:\Dev-Cpp\include\c++\3.3.1\bits\istream.tcc std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT,
328 C:\Dev-Cpp\include\c++\3.3.1\istream std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, 622 C:\Dev-Cpp\include\c++\3.3.1\bits\istream.tcc std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, 361 C:\Dev-Cpp\include\c++\3.3.1\istream std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, C:\Dev-Cpp\varastoija\Makefile.win [Build Error] [main.o] Error 1
Eli tohon tyyliin...
cin:stä luetaankin näin:
int vastaus; cin >> vastaus;
.get-funktio palauttaa yhden merkin.
Mutta minun pitikin saada vain yksi merkki vastaukseksi, 1 tai 2.
No ei kai sitä silloin int-muuttujaan lueta?
Aihe on jo aika vanha, joten et voi enää vastata siihen.