sjcfg.cpp
来自「DOS下一个完整的大型程序源代码」· C++ 代码 · 共 78 行
CPP
78 行
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sjcfg.h"
Config config;
void ResetPassword()
{
memcpy( config.szPassword, "Y ", 6 );
char str[ 11 ];
ltoa( 920141l, str, 10 );
for( int i = 0; i < cnPasswordSize; i ++ )
config.szPassword[ i ] ^= str[ i ];
}
void main(int argc,char *argv[])
{
puts( "SJCFG: SJ config program\n"
"Write by Little Young, 1996, 9\n" );
FILE *fp = fopen( "SJ.CFG", "rb" );
fread( &config, sizeof( Config ), 1, fp );
fclose( fp);
if( argc < 2 )
{
printf( "Usage: sjcfg /p --> Reset password\n"
" sjcfg /b --> Reset BillNo\n"
" sjcfg /f --> Reset FreeSeg\n"
" sjcfg /s 1-31 --> Set start day\n"
" sjcfg /e 1-31 --> Set end day\n"
" sjcfg /y 1996- --> Set data year\n"
" sjcfg /m 1-12 --> Set data month\n"
" sjcfg /l 1- --> Set LSH\n"
"Start day = %u\n"
"End day = %u\n"
"\n"
"Data year = %u\n"
"Data month = %u\n"
"\n"
"ZhiNaJin = %1.2f\n"
"LSH = %lu\n",
config.nDayStart, config.nDayEnd,
config.nDataYear, config.nDataMonth,
config.fAChgRate,
config.lBillNo
);
return;
}
strupr( argv[ 1 ] );
if( strcmp( argv[ 1 ], "/P" ) == 0 )
ResetPassword();
else if( strcmp( argv[ 1 ], "/B" ) == 0 )
config.lBillNo = 1;
else if( strcmp( argv[ 1 ], "/F" ) == 0 )
memset( config.lFree, 0, 10 * 4 );
else if( strcmp( argv[ 1 ], "/S" ) == 0 )
config.nDayStart = atoi( argv[ 2 ] );
else if( strcmp( argv[ 1 ], "/E" ) == 0 )
config.nDayEnd = atoi( argv[ 2 ] );
else if( strcmp( argv[ 1 ], "/Y" ) == 0 )
config.nDataYear = atoi( argv[ 2 ] );
else if( strcmp( argv[ 1 ], "/M" ) == 0 )
config.nDataMonth = atoi( argv[ 2 ] );
else if( strcmp( argv[ 1 ], "/Z" ) == 0 )
config.fAChgRate = atof( argv[ 2 ] );
else if( strcmp( argv[ 1 ], "/L" ) == 0 )
config.lBillNo = atol( argv[ 2 ] );
fp = fopen( "SJ.CFG", "wb" );
fwrite( &config, sizeof( Config ), 1, fp );
fclose( fp);
printf( "OK!!!" );
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?