看下哪出错了,小弟我找不出来
看下哪出错了,我找不出来啊
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char ch,a[1000],b[1000];
int i=0,max=0;
fp=fopen("3.txt","r");
if(fp==NULL)
{
printf("cannot open this file\n");
exit(-1);
}
while((ch=fgetc(fp))!='\n')
{
a[i]=ch;
i++;
}
i=0;
while((ch=fgetc(fp))!=EOF)
{
if(ch!='\n')
{
b[i]=ch;
i++;
}
if(strlen(a)<strlen(b))
strcpy(a,b);
i=0;
}
puts(a);
fclose(fp);
return EXIT_SUCCESS;
}
目的是输出3.txt文档中最长的那个字符串,不知道哪出问题了,求真相啊!
------解决方案--------------------
只是初步看了一下
ch=fgetc(fp))!=EOF 这里出了问题
------解决方案--------------------
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char ch,a[1000],b[1000];
int i=0,max=0;
fp=fopen("3.txt","r");
if(fp==NULL)
{
printf("cannot open this file\n");
exit(-1);
}
while((ch=fgetc(fp))!='\n')
{
a[i]=ch;
i++;
}
i=0;
while((ch=fgetc(fp))!=EOF)
{
if(ch!='\n')
{
b[i]=ch;
i++;
}
if(strlen(a)<strlen(b))
strcpy(a,b);
i=0;
}
puts(a);
fclose(fp);
return EXIT_SUCCESS;
}
目的是输出3.txt文档中最长的那个字符串,不知道哪出问题了,求真相啊!
------解决方案--------------------
只是初步看了一下
ch=fgetc(fp))!=EOF 这里出了问题
------解决方案--------------------
- C/C++ code
while((ch=fgetc(fp))!=EOF){ if(ch!='\n'){ b[i]=ch; i++; } if(strlen(a)<strlen(b))//{少了这个?? strcpy(a,b); i=0;//这个i=0每次都会执行, 你的b[i]==b[0] //} }