Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hvis du mener at fejlmeddelelsen kommer med hver gang du trykker <ENTER>, er det jo fordi at <ENTER> hverken er lig med \'f\' eller \'b\' og default så udføres... Hvis du dog har trykket \'d\' før <ENTER> (fx \"ffbd\") vil meddelelsen ikke komme, da løkken jo kun kører til \'d\'!
først sætter den a til det der kommer ud af cin.get, og hvis den KAN det, hvilket den oftest kan, så returnerer den parentes 1 ( true ), og så sammenligner du altså 1 med D......
om det er char a; eller int a; er vel egentlig ligemeget, en char er jo bare et 8-bits integer......
den kan måske brokke sig over \'d\' sammenligninger så, det er rigtigt, så det er bedst at sætte den til char, så allokerer den heller ikke for meget unødig hukommelse........
cin.get() giver dig det input du laver, tegn for tegn, dvs. indtaster du \'abcdefg\' og trykker ENTER så får du først a, siden b, siden c osv. Problemet med cin.get() er at den først giver dig en karakter når du (på et eller andet tidspunkt) trykker ENTER. Da du alligevel anvender getch() i bunden af programmet, vil jeg foreslå dig at ændre programmet sådan her:
#include <iostream.h> #include <conio.h> int main(int argc, char* argv[]) { int a, f=0,b=0;
while( (a=getch()) != \'d\') { cout << \"Behandler \" << (char)a << endl; switch (a) { case \'f\': f++;break; case \'b\': b++;break; default : cout<<\"Noget galt her\"<<endl;break; }; //end of switch.. }; //end of while..
cout<<\"antal f\'er \"<<f<<\" antal b\'er \"<<b<<endl; getch();
return 0; } // Main
Programmet her virker under TC++ 3.0 og C++ Builder 4.0.
=> soepro: Hvorfor mener du så, at det er så noget vrøvl, det jeg skriver?
(Desuden, ikke at det har noget med essensen her at gøre, men det er jo ikke sikkert, at det er et problem, at cin.get() først reagerer ved tryk på ENTER, det kunne jo være meningen...)
den fortæller << operatoren at det er et tegn der skal skrives ud, ikke et tal. << operatoren er nemlig overloadet til at outputte tal så de fremstår som tal, og tegn så de fremstår som tegn på konsollen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.