#include
#include
#include
#include
#include
#include
#include
using std::endl;
using std::cin;
using std::cout;
using std::string;
using namespace std;
int main()
{
FILE *fp,*fp1;
int i,j;
char str[100];
char str1[100];
char strchar[3];
char strchar1[3];
if ((fp = fopen("input.txt", "r")) == NULL)
{
printf("fopen() error %d: %s\n", errno, strerror(errno));
exit(-1);
}
if ((fp1 = fopen("database.txt", "r")) == NULL)
{
printf("fopen() error %d: %s\n", errno, strerror(errno));
exit(-1);
}
fgets(str, sizeof(str), fp);
str[strlen(str)] = '\0';
// printf("%s ", str);
for(i=0;i<=strlen(str);i=i+2)
{
strncpy(strchar, str+i, 2);
strchar[2] = '\0';
cout<<strchar<<endl;
while(fgets(str1, sizeof(str1), fp1)) //此处只能读取一遍成语数据,怎么办?
{
cout<<str1;
for(j=0;j<=strlen(str1);j=j+2)
{
strncpy(strchar1, str1+j, 2);
if((strchar[0]==strchar1[0])&&(strchar[1]==strchar1[1]))
{
cout<<str1;
break;
}
}
}
}
return 0;
}
第一遍for循环可以进入while循环,但是第二遍,while处的fgets不会读取了,怎么办呀?
(此程序是实现:挨个提取input里边的中文,利用每个中文字符去database里查找含有这个字符的成语,并且将它输出来)