/* Compiler: BC++ 3.1, Turbo C ++ 1.01(3.01) (free from http://community.borland.com/museum) MSC 6.0, MSVC 1.52. Compile mode: large Project: Scanf.C ..\..\Lib\(8000E.Lib,7188XAL.Lib,7188XBL.Lib,7188XCL.Lib or 7188EL.Lib) 4. Explain: (1) Show how to write a function for input data. (2) To get a string. (3) To use C function: sscanf,or just use Scanf(). ** MSC 6.0 cannot use Scanf(), because don't support function vsscanf() 5. Hordware: 7188/8000 6. Before the program call InstallCom1( ), it can use Kbhit( ), Getch( ), Putch( ),Print( ), Scanf( )... to send/receive data to/from COM1 of 7188x/8000. 7. But after call Installcom1( ) these functions will not work until the program call RestoreCom1( ). All these I/O functions only apply to the main Command port (console port) Command port list 7188 COM4 7188XA COM4 7188XB COM1 7188XC COM1 7188EN COM1 8000 COM1 ----------------------------------------------------------------------------------- */ #include #include #include #include #include #include"..\..\lib\P821.h" /* -------------------------------------------------------------------------------*/ char buf[100]; void main(void) { int inumber,i2; char string[80]; int inputData; int no; InitLib(); /* method 1: use LineInput + sscanf */ Puts("Please input i,str:"); inputData=LineInput(buf,99); if(inputData) { sscanf(buf,"%d %s",&inumber,string); Print("inumber=%d string=%s",inumber,string); } else { Puts("There is not any input.\n\r"); } /* method 2: use Scanf */ /* user can try to key in 0 or 1 or 2 or 3 item, to check the return value of Scanf */ SetScanBuffer(buf,99); /* set new buffer, so after call Scanf, can get the input string */ while(1) { Puts("\n\rPlease input i,str again:(no input to quit)"); inputData=Scanf("%d %s%d",&inumber,string,&i2); Print("inputData=%d i=%d str=%s i2=%d",inputData,inumber,string,i2); Print("\n\rThe input string is:%s\n\r",buf); if(no==0) break; } ResetScanBuffer(); }