如何用C语言来制作翻译器

Python09

如何用C语言来制作翻译器,第1张

写了一个简单的翻译器,只提供单词翻译,中文英文,英文到中文都行,你需要首先进行字典录入。录入以后会自动在目录下生成一个dic.txt文件。

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#define FILENAME "dic.txt"

struct word //字典结构体

{

char chinese[20]//中文

char english[20]//英文

}

/////////////////////////////////////////////////////////////

FILE *FP //全局文件指针

FILE * FileOpen(char FileName[]) //文件打开函数

{

FILE *fp

if((fp=fopen(FileName,"r"))==NULL)

{

fp=fopen(FileName,"w")

cout<<"文件打开失败重新创建记录文件"

return fp

}

fp=fopen(FileName,"a+")

return fp

}

void FileClose(FILE *fp) //文件关闭函数

{

if(fclose(fp)==0)

cout<<"安全关闭"<<endl

else

cout<<"文件关闭失败"<<endl

}

////////////////////////////////////////////////////////////////

void tra1() //中文翻译成英文模块

{

FILE *fp

if((fp=fopen(FILENAME,"r"))==NULL)

{

printf("文件打开失败!")

}

char tempchinese[20]

word temp

printf("请输入中文单词:")

scanf("%s",tempchinese)

while(fread(&temp,sizeof(word),1,fp)==1)

{

if(strcmp(temp.chinese,tempchinese)==0)

{

printf("中文:%s 英文:%s \n",temp.chinese,temp.english)

}

}

printf("查找完毕!")

FileClose(fp)

}

//////////////////////////////////////////////

void tra2() //英文翻译成中文模块

{

FILE *fp

if((fp=fopen(FILENAME,"r"))==NULL)

{

printf("文件打开失败!")

}

char tempenglish[20]

word temp

printf("请输入英文单词:")

scanf("%s",tempenglish)

while(fread(&temp,sizeof(word),1,fp)==1)

{

if(strcmp(temp.english,tempenglish)==0)

{

printf("中文:%s 英文:%s \n",temp.chinese,temp.english)

}

}

printf("查找完毕!")

FileClose(fp)

}

////////////////////////////////////////////////

void inp() //字典录入模块

{

FP=FileOpen(FILENAME)

word temp

printf("请输入英文:")

scanf("%s",temp.english)

printf("请输入对应中文:")

scanf("%s",temp.chinese)

fwrite(&temp,sizeof(temp),1,FP)

printf("信息添加完成")

FileClose(FP)

}

////////////////////////////////////////////////

int menu() //主目录模块

{

int choose

while(choose!=0)

{

printf("\n")

printf("简易中英翻译系统\n")

printf("1、中->英翻译\n")

printf("2、英-中翻译\n")

printf("3、字典录入\n")

printf("输入0退出系统\n")

printf("请输入:")

scanf("%d",&choose)

switch(choose)

{

case 0:return 0break

case 1:tra1()break

case 2:tra2()break

case 3:inp()break

}

}

}

///////////////////////////////////////////////////////

void main()

{

menu()

}

不知道你这样问的意思。不过看到分值挺诱人的,我也来说两句。

C语言翻译器。翻译器是早前的叫法,现在大都叫编译器。

以前条件比较艰苦,开发的时候,程序的编辑工具、编译工具、链接工具、调试环境等等这些统称为“工具链”的东东都是分开的(意思是说它们是不同的几个软件),说得通俗一点,就是写代码需要一个编辑软件,编译写好的代码,又需要用到别的软件,这样极其的不方便。

发展到现代,很多开发过程都集成到一个软件去了,就是说上面介绍的那些编写、编译、链接甚至是执行等等这些开发环节在一个集成开发软件当中都能完成。

所以,现在通常所说的编译,已经隐含地表示一个程序从预编译、编译、汇编、链接等等这么些过程了。

什么是编译(也就是你所问的翻译)?编译就是将人认识的高级一点的C语言翻译成机器认识的低级一点的机器码(就是二进制码,全是0和1)。翻译器呢,就是完成这个过程的一个软件啦。

这么说,你能不能理解?

速度采纳给分。