Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  62 5484
Tror du bomma i linken, det skal vel være 'kalkis' og ikke 'calkis'...

Men, uansett. Du kan prøve med cin.flush():

Kode

while (matteting > 4 || matteting <1)
{
cout << "Multiplisere, dividere, addere eller subtrahere? (1,2,3,4) ";
cin.flush();
cin >> matteting;
}
Opprinnelig postet av steinarlima
Hmm.. Har et problem.. Har fiksa noen loop funksjoner nå, men problemet er at programmet går inn i en loop viss jeg skriver en bokstav i stedet for et tall når jeg skal taste inn de talla kalkulatoren skal regne ut. Noen måter å fikse dette på?

Kode

http://home.no.net/steinlim/calkis.cpp
http://home.no.net/steinlim/calkis.exe
Vis hele sitatet...
Hm.. linkene funker ikke? (404 Error)
1. d4
steili's Avatar
Trådstarter
Opprinnelig postet av rune420
Tror du bomma i linken, det skal vel være 'kalkis' og ikke 'calkis'...

Men, uansett. Du kan prøve med cin.flush():

Kode

while (matteting > 4 || matteting <1)
{
cout << "Multiplisere, dividere, addere eller subtrahere? (1,2,3,4) ";
cin.flush();
cin >> matteting;
}
Vis hele sitatet...
Hmm.. Må man include en fil for å få det til å virke? Hos meg tror compilatoren at det er en funksjon (tror jeg)
Feilmelding:
no matching function for call to `_IO_istream_withassign::flush()'
Vis hele sitatet...
P.S: Har endre linkene nå..
Du kan også kode noe omtrent slik:

Kode

#include<iostream>
using namespace std;
int main(){
char inputting;
inputting='0';
while (inputting-'0' > 4 || inputting-'0' <1)
{
cout << "Multiplisere, dividere, addere eller subtrahere? (1,2,3,4) ";
cin>>inputting;
cin.ignore(1000,'\n'); //ignorerer de 1000 første tegnene i 
//input-bufferen, fram til '\n' (newline)
};
int matteting=inputting-'0';
//matteting er nå 1,2,3 eller 4
}
Forklaring til inputting-'0':
Et tegn kan også skrives som et tall mellom 0 og 255. '0' er for eksempel 48, så du kan skrive:
char a='0';
int b=a; //b==48;
'1'==49, '2'==50, så hvis inputting=='1', så blir inputting-'0'==49-48==1

En viktig ting: Hvis brukeren skriver inn noe som begynner med 1,2,3 eller 4, ser programmet bare på det første tegnet. "2asf25?^s'&n23" blir altså til '2'

Si i fra hvis det er noe feil, jeg har for eksempel nesten ikke brukt cin.ignore() før.
Sist endret av Mates; 5. mai 2004 kl. 19:46.
Det er også mulig du bare kan bruke

Kode

cin.ignore();
istedenfor

Kode

cin.flush();
slik jeg fåreslo.
▼ ... over en måned senere ... ▼
1. d4
steili's Avatar
Trådstarter
Har programert litt de siste dagene, og dette er resultatet:

Kode

http://home.no.net/steinlim/TheGreatGuessingGame
Kommentarer?
Opprinnelig postet av steinarlima
Har programert litt de siste dagene, og dette er resultatet:

Kode

http://home.no.net/steinlim/TheGreatGuessingGame
Kommentarer?
Vis hele sitatet...
jeg syns personlig det var en kjempe bra begynnelse
ओम नमो नारायण
Dodecha's Avatar
DonorCrew
Ja det går bra med den, men det er bare en compiler..

Devcpp er compiler, builder og IDE, en hel liten pakke.
m0b
m0b's Avatar
DonorAdministrator
steinarlima: Bra begynnelse dette, men et brennhett tips kan være å lære seg å ha en clean kodestil (noe småpirk på selve designet av koden men dette kommer seg) - det er hvertfall noe jeg verdsetter meget høyt. Ellers ser d ut til at du har forstått basicene med programmeringen, stå på og du vil mestre språket du og. :)

"Det tar en måned å lære seg c/c++, men en livstid på bli god i det" ;)
Fin begynnelse, men jeg fikk den til å krasje når jeg tastet inn en bokstav i stedet for et tall. Ellers fikk jeg ikke kompilert koden i dev-cpp.
Jeg tror du kan bruke noe slikt for å takle feil input:

Kode

#include<string>
using namespace std;
...
string a;
...
cin>>a;
...
if (a=="1") ...
else if (a=="2")...
...
else 
continue; //hvis a er noe helt annet.
Jeg har ikke testet koden selv, så det kan være noe feil, men jeg håper ikke det er det.
Men bare fortsett, øving gjør mester.
1. d4
steili's Avatar
Trådstarter
Opprinnelig postet av |d13m0b
steinarlima: Bra begynnelse dette, men et brennhett tips kan være å lære seg å ha en clean kodestil (noe småpirk på selve designet av koden men dette kommer seg) - det er hvertfall noe jeg verdsetter meget høyt. Ellers ser d ut til at du har forstått basicene med programmeringen, stå på og du vil mestre språket du og.

"Det tar en måned å lære seg c/c++, men en livstid på bli god i det"
Vis hele sitatet...
Vet, men dette er det første litt "store" programmet jeg har laga, og jeg vet at jeg ikke er like konsekvent på noen ting. (men du skulle bare sett den første versjonen av programmet )

Opprinnelig postet av Mates
Fin begynnelse, men jeg fikk den til å krasje når jeg tastet inn en bokstav i stedet for et tall. Ellers fikk jeg ikke kompilert koden i dev-cpp.
Jeg tror du kan bruke noe slikt for å takle feil input:

Kode

#include<string>
using namespace std;
...
string a;
...
cin>>a;
...
if (a=="1") ...
else if (a=="2")...
...
else 
continue; //hvis a er noe helt annet.
Jeg har ikke testet koden selv, så det kan være noe feil, men jeg håper ikke det er det.
Men bare fortsett, øving gjør mester.
Vis hele sitatet...
Takk for hjelpen , skal teste det. Jeg har forøvrig programert i Dev- C++ 4. Trodde jeg hadde følgt ANSI, men siden noen av dere ikke klarer compilie koden, så er det nok litt feil i koden.

Edit: Fungerte med string, og det ser ut som en veldig nyttig funksjon. Takk for hjelpen . Uppa filene opp til samme sted som sist.
Edit2: Fiksa visst bare menyen i starten, men gidder ikke stresse med det programmet lenger nå. Kan heller gjøre det i neste program jeg lager.
Sist endret av steili; 28. juni 2004 kl. 15:53.
Opprinnelig postet av steinarlima
Hmm.. Har et problem.. Har fiksa noen loop funksjoner nå, men problemet er at programmet går inn i en loop viss jeg skriver en bokstav i stedet for et tall når jeg skal taste inn de talla kalkulatoren skal regne ut. Noen måter å fikse dette på?

Kode

http://home.no.net/steinlim/kalkis.cpp
http://home.no.net/steinlim/kalkis.exe
Vis hele sitatet...
Isteden for å bruke alle "if"'ene så kan du bruke Switch istede!

if kode:

Kode



if (matteting == 1)
   svar = gang(tall1, tall2);


if (matteting == 2)
   svar = del(tall1, tall2);


if (matteting == 3)
   svar = pluss(tall1, tall2);


if (matteting == 4)
   svar = minuse(tall1, tall2);
Switch kode:

Kode

Switch (matteting) { //start på Switch (mattetegn)
   case 1:
       svar = gang(tall1, tall2);
       break;
   case 2:
      svar = del(tall1, tall2);
      break;
   case 3:
      svar = pluss(tall1, tall2);
      break;
   case 4:
      svar = minus(tall1, tall2);
      break;
   default:
      cout << "Ugyldig valg!";
      system("cls"); //du må ha inkludert cstdlib (#include <cstdlib>
      main(); //går tilbake til start ;)
      break;
} //slutt på Switch (mattetegn)

Opprinnelig postet av steinarlima
Har programert litt de siste dagene, og dette er resultatet:

Kode

http://home.no.net/steinlim/TheGreatGuessingGame
Kommentarer?
Vis hele sitatet...
en ting jeg la merke til i sourcen din.

Kode

#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <string>
using namespace std;
åssen får du det til å funke?

du bruker jo nettopp

Kode

using namespace std;
for å slippe den gamle måten ved å ha ".h" på slutten.
jeg mener ihvertfall at det skal være slik:

Kode

#include <iostream>
#include <stdlib>
#include <time>
#include <string>
using namespace std;
Opprinnelig postet av K@ZOo
Godt observert og godt tenkt. Du er en "kløpper fyr".
Vis hele sitatet...
Takk
Sist endret av Dweep; 2. juli 2004 kl. 02:57.
1. d4
steili's Avatar
Trådstarter
Vet, men viss du ser på de siste postene mine, så forstår du nok at jeg har fatta pointet Har ikke gjordt så mye med kalkisen i det siste ser du.. Og den der linjen med

Kode

using namespace std;
brukte jeg bare for jeg så andre gjorde det Uansett så skal jeg skifte på det, men du hadde en liten feil inni koden din du og
#include <stdlib> skal være #include <cstdlib>

Edit: Ojsann, så litt merkelig ut med 5 like smileys i en post..