如何翻译C语言
发布网友
发布时间:2022-04-23 21:36
我来回答
共1个回答
热心网友
时间:2023-10-10 13:47
写了一个简单的翻译器,只提供单词翻译,中文到英文,英文到中文都行,你需要首先进行字典录入。录入以后会自动在目录下生成一个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 0;break;
case 1:tra1();break;
case 2:tra2();break;
case 3:inp();break;
}
}
}
///////////////////////////////////////////////////////
void main()
{
menu();
}