- 论坛徽章:
- 0
|
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <malloc.h>
#include<math.h>
/* main() */
int main(void)
{
FILE *fp,*fp1,*fp2;
static d[]={ABCBACBCBA BBBCAAABBCBA BC};给定的字符串
char a[100];
int b[100];
int c[100];
int i,leng1=0,l=0,k=0,leng2=0;
for(i=0;i<100;i++)
{
a[i]='\0';
b[i]=0;
c[i]=0;
}
fp2=fopen("aaaaa.txt","w");
if ((fp=fopen("次数.dat", "rb")) == NULL)
{
printf("Can not open the file1!\n");
exit(1);
}
if ((fp1=fopen("字符.txt", "r")) == NULL)
{
printf("Can not open the file2!\n");
exit(1);
}
while(!feof(fp)&&!feof(fp1))
{
fgets(a,1000,fp1);
leng1=strlen(a);
printf("leng1=%d\n",leng1);
for(i=0;i<leng1;i++)
fread(&b[i],sizeof(int),leng1,fp);
/* 比较读到a中的字符和给定的字符 */
{
........
............ 略去
}
/* 比如:找出a数组中第7~23个字符是和给定的字符相同的 */
for(i=7;i<23;i++)
{
c[k]=fabs(b[i]-b[i+1]);
k++;
fprintf(fp2,"%d\t",c[i]);
}
}
return 0;
}
但是输出的结果有问题:
第一行字符的输出结果:
7 2 1 6 1 2 4 2 2 1 1 328 256 256 1280
.........................
.........................
.........................
而本应该输出的的结果应该为:
7 2 1 6 1 2 4 2 2 1 1 2 7 1 4
..........................
..........................
..........................
对于第二行字符也一样,输出的结果前部分是正确的,后部分是错的,请帮忙看下,谢谢 |
|