⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hzkdemo.cpp

📁 一个提取国标汉字的C源码文件
💻 CPP
字号:
// Borland C++ - (C) Copyright 1991 by Borland International

/* HZK16.CPP */
/* 2003-09-13 */
/* autor:  zzwj5120
   e-mail: zzwj5120@sina.com
*/
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include "gethzdz.cpp"
unsigned long gethzdz(int n);
extern unsigned char hzdz[32];
void main(int argc, char* argv[])  // access command-line arguments
{
	FILE *fp1,*fp2;
	union word0
	{
		unsigned long int ll;
		struct bytes0
		{
			unsigned char a;
			unsigned char b;
			unsigned char c;
			unsigned char d;
		}st0;
	}un0;
	char line[16];
	union word
	{
		unsigned int ab;
		struct bytes
		{
			unsigned char a;
			unsigned char b;
		}st;
	}un;
	int  ch,i,k;
	//start
	clrscr();
	argv[1]="FILE1.TXT";//source file
	argv[2]="FILE2.TXT";//create new file

	if (argc!=3)      // test number of arguments
	{
		printf("the paramers is < 3 \n");
		cout<< "USAGE: HZKDEMO.EXE FILE1.TXT FILE2.TXT \n";
		getch();
		//return;
	}

	if((fp1=fopen(argv[1],"rb"))==NULL)
	{
		cout<<"read FILE1.TXT error !";
		getch();
		return;
	}
	if((fp2=fopen(argv[2],"rb"))==NULL)
	{
		if((fp2=fopen(argv[2],"wb"))==NULL)
		{
			cout<<"creat FILE2.TXT error!";
			getch();
			return;
		}
	}
	else
	{
		cout<<"the FILE2.TXT already exist!";
		cout<<"Do you delete target file(y/n)?"<<endl;
		ch=getchar();
		if(ch=='y'||ch=='Y')
		{
			if((fp2=fopen(argv[2],"wb"))==NULL)
			{
				cout<<"the FILE2.TXT open error!";
				getch();
				return;
			}
		}
		else
			return;
	}

	clrscr();
	un.st.b=fgetc(fp1);
	un.st.a=fgetc(fp1);
	printf("\nread FILE1.TXT:  ");
	printf("un.st.b = %x  un.st.a = %x ",un.st.b,un.st.a);
	printf(" un.ab = %x",un.ab);
	getch();
	while(1)
	{
		if(feof(fp1))
		{
			cout<<"the FILE1.TXT have finished!\n";
			getchar();
			break;
		}
		un0.ll=gethzdz(un.ab);
		//for(i=0;i<32;i++)
		//	hzdz[i]=fgetc(fp1);
		fputc(0x0d,fp2);
		fputc(0x0a,fp2);
		for(i=0;i<32;)
		{
			for(char j=0;j<8;j++)
			{
				k=7-j;
				line[j]=(hzdz[i])>>k;
				line[j]&=0x01;
			}
			i++;
		for(;j<16;j++)
			{
				k=15-j;
				line[j]=(hzdz[i])>>k;
				line[j]&=0x01;
			}
			i++;
			for(j=0;j<16;j++)
			{
				if(line[j])
					printf("o",line[j]);
				else
					printf(" ");
			}
			cout<<endl;
			for(j=0;j<16;j++)
			{
				if(line[j])
				{
					fputc(' ',fp2);
					fputc('o',fp2);
				}
				else
				{
					fputc(' ',fp2);
					fputc(' ',fp2);
				}
			}
			fputc(0x0d,fp2);
			fputc(0x0a,fp2);
		}
		fputc(0x0d,fp2);
		fputc(0x0a,fp2);
		fprintf(fp2,"position = %d",un0.st0.d);
		fprintf(fp2,"%d",un0.st0.c);
		fprintf(fp2,"%d",un0.st0.b);
		fprintf(fp2,"%dH BYTE",un0.st0.a);
		fprintf(fp2,"%c%c         = 32*((FIRST-0xA1)*94+(SECOND-0xA1));",0x0d,0x0a);
		fputc(0x0d,fp2);
		fputc(0x0a,fp2);
		printf("\nposition = %x",un0.st0.d);
		printf("%x",un0.st0.c);
		printf("%x",un0.st0.b);
		printf("%xH BYTE\n	 = 32*((FIRST-0xA1)*94+(SECOND-0xA1));\n",un0.st0.a);
		cout<<"\ncontinue(y/n)?\n";
		ch=getchar();
		if(ch=='n')
			break;
		un.st.b=fgetc(fp1);
		un.st.a=fgetc(fp1);

	}
	fclose(fp1);
	fclose(fp2);
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -