请大家帮帮忙~~~万分感谢
利用提供的密码本(cipher.txt)进行查询,将输入的数码翻译成电文。要求:⑴ 每四位数码代表一个汉字;
⑵ 密码以输入“.”作为结束。
要求:使用fgets和fputs函数。
密码本内容示例:
1234 你 1305 我 2407 在 1212 回 9900 看 7777 头 2219 晚 0807 归 2378 见 4444 明 6767 上 8888 点
输入内容为:1305 4444 2219 0807 .
我写的是:
#include "stdlib.h"
#include "iostream.h"
#include "stdio.h"
void main()
{
FILE *fp;
char a[40],b;
int i=0,j,t;
if((fp=fopen("cipher.txt","r+"))==NULL)
{
printf("can not open the file.\n");
exit(0);
}
printf("输入内容:");
scanf("%c",&a[i]);
for(i=0;a[i]!='.';)
{ i++;
scanf("%c",&a[i]);
}
printf("密码翻译:");
for(i=0;a[i]!='.';i++)
{
b=fgetc(fp);
if(b==a[i])
{ j=i;
for(;!feof(fp);b=fgetc(fp))
{ if(a[i]==' ')
break;
if(b!=a[i])
{ for(t=0;t<5-i;t++)
b=fgetc(fp);
i=j;
}
else
i++;
}
}
else
{ for(t=0;t<5-i;t++)
b=fgetc(fp);
}
if(a[i]==' ')
{ printf("%c ",fgetc(fp));
rewind(fp);
}
}
printf("\n");
}
好像进入死循环了,不知道是不是这样的 。拜托大家了。。。谢谢
[ 本帖最后由 林墨哓 于 2011-1-3 23:38 编辑 ]