Forum: Kan någon se något fel??

Forum huvudsida -> Programmering -> Kan någon se något fel??

Sidor: 1

Till botten

jockepockee 19:21 - 10:e Mars 2007 | Post #1
Medlem
Inlägg: 192


Skicka PM
när man kör programmet så verkar det inte som att mina funktioner fungerar Smiley Smiley Smiley

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. void check(string user, string pass, bool checked);
  5. void start();
  6. int main()
  7. {
  8. int times = 4;
  9. string user;
  10. string pass;
  11. bool checked = false;
  12. while (times > 1)
  13. {
  14. if (checked == true)
  15. {
  16. cout << "nnOgilltig inloggning!";
  17. }
  18. times -= 1;
  19. cout << "nnDu har " << times << " chanser kvar.";
  20. cout << "nnAnvändarnamn: ";
  21. cin >> user;
  22. cout << "nLösenord: ";
  23. cin >> pass;
  24. check(user, pass, checked);
  25. }
  26. return 0;
  27. }
  28. void check(string user, string pass, bool checked)
  29. {
  30. if ((user == "jockepockee") && (pass == "lol"))
  31. {
  32. start();
  33. }
  34. else
  35. {
  36. checked = true;
  37. return;
  38. }
  39. }
  40. void start()
  41. {
  42. cout << "nDu är nu inloggad!";
  43. }



-------------------------



Senast redigerad 22:43 - 10:e Mars 2007


derfian 19:50 - 10:e Mars 2007 | Post #2
Medlem
Inlägg: 149


Skicka PM
Tja, den kompilerar (gcc-4.1, linux) och programmet uppför sig enligt koden. Vad är problemet?


Senast redigerad 19:51 - 10:e Mars 2007


Omega 19:56 - 10:e Mars 2007 | Post #3
Medlem
Inlägg: 42


Skicka PM
Du kommer aldrig att få texten med ogiltig inloggning utskriven, då värdet på checked aldrig ändras i main.
Detta eftersom checked skickas med call by value, och inte heller returneras.

I övrigt är det aldrig fel att stega igenom koden med en debugger, men det kanske du har gjort?

-------------------------
Fall omkull sju gånger och res dig upp åtta.



derfian 20:16 - 10:e Mars 2007 | Post #4
Medlem
Inlägg: 149


Skicka PM
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. bool check(string user, string pass);
  5. void start();
  6. int main()
  7. {
  8. int tries = 3;
  9. string user;
  10. string pass;
  11. while (tries > 0)
  12. {
  13. cout << "Du har " << tries << " chanser kvar." << endl;
  14. tries--;
  15. cout << "Användarnamn: ";
  16. cin >> user;
  17. cout << "Lösenord: ";
  18. cin >> pass;
  19. if (check(user, pass))
  20. {
  21. start();
  22. return 0;
  23. }
  24. else
  25. {
  26. cout << "Ogiltig inloggning!" << endl;
  27. }
  28. }
  29. return 0;
  30. }
  31. bool check(string user, string pass)
  32. {
  33. if ((user == "jockepockee") && (pass == "lol"))
  34. return true;
  35. else
  36. return false;
  37. }
  38. void start()
  39. {
  40. cout << "Du är nu inloggad!" << endl;
  41. }


Det här är kanske vad du menade att skriva.


Senast redigerad 20:24 - 10:e Mars 2007


derfian 20:22 - 10:e Mars 2007 | Post #5
Medlem
Inlägg: 149


Skicka PM
Jo, du vill nog byta ditt lösenord här också. Det var inte så smart att skicka med det med källkoden.




jockepockee 22:38 - 10:e Mars 2007 | Post #6
Medlem
Inlägg: 192


Skicka PM
Oj!

Men de e inte de lösenordet jag har normalt

-------------------------



Senast redigerad 22:42 - 10:e Mars 2007


Sidor: 1

Forum huvudsida -> Programmering -> Kan någon se något fel??
Atom feed

Du får inte posta i den här tråden | Till toppen