|
| irriterende problem med input bufferen. og~ Fra : Flare |
Dato : 21-06-02 23:29 |
|
(win 32 C++)
Jeg sidder og roder med et program som skal indsætte (og udtage) nogle ting
i en Mysql database. Det er nu ikke der problemet ligger. Det er når jeg har
brugt getch() fra conio jeg får problemer. Den efterlader åbenbart noget i
bufferen sometider. Dette problem kunne jeg dog let løse HVIS jeg kunne
benytte cin.ignore. Men idet jeg bruger en 3.parts SQL API (MYsql+++) har
jeg fået et stort problem. Jeg kan ikke bruge cin.ignore. Jeg får følgende
fejl meddelelse i VC6.0
>> error C2039: 'mysql_ignore' : is not a member of
'basic_istream<char,struct std::char_traits<char> >'
Der er åbenbart et eller andet denne API går ind og roder i. Jeg ved ikke om
nogen har en løsning på dette. Hvis ikke, er der så nogen der ved om man kan
"måle" på om input bufferen er tom eller ej? Fx. if (!cin.???) eller noget i
den stil, for jeg kan jo desværer ikke flushe stdin bufferen.
Tak på forhånd
Anders
| |
Jonas Meyer Rasmusse~ (21-06-2002)
| Kommentar Fra : Jonas Meyer Rasmusse~ |
Dato : 21-06-02 23:42 |
|
"Flare" <dct_flare@hotmail.com> wrote in message
news:3d13a8cb$0$71616$edfadb0f@dspool01.news.tele.dk...
> >> error C2039: 'mysql_ignore' : is not a member of
> 'basic_istream<char,struct std::char_traits<char> >'
Det kunne tyde på at biblioteket, ganske upassende, bruger en makro noget
lignende:
#define ignore mysql_ignore
Du kan prøve det ved at #undef den, det vil jeg gætte på virker
altså:
#include "mysqlheader..."
#undef ignore
mvh Jonas
| |
Flare (22-06-2002)
| Kommentar Fra : Flare |
Dato : 22-06-02 18:24 |
|
Det løste problemet, eller det gjorde det faktisk ikke. Ignorer gav ikke det
rigitge resultat
-------
<conio.h>
var = getch();
cin >> var2;
-------
Dette stykke kode virker fint på en win2000/XP console, men på en ME / 98
som bygger på "rigtig" dos "hænger" den indtastede karakter fra getch som
det første tegn i CIN´et.
Hvordan FAEN undgår jeg det? Kan man ikke benytte et getch() før et cin i
win98 /me????
Har prøvet ALT jeg kender til inout buffer og tømning etc. cin.ignore,
fflush(stdin), cin.sync, cin.clear ......intet virker...getch tegnet kommer
stadig med i mit cin felt.
Håber nogen kan hjælpe..
Anders
| |
|
|