我的这段c 程序问题在哪?
#include <stdio.h>
#include <string.h>
#include <conio.h>
void ReadWrite(void) ;
int findStr(char *str,char *substr)
{ int i,flag,j,t,cnt=0;
for(i=0;*(str+i)!='\0';i++)
{
flag=1;
for(j=i,t=0;*(str+j)!='\0'&&*(substr+t)!='\0';j++,t++)
if(*(str+j)!=*(substr+t))
{
flag=0;
break;
}
if(flag==1)
cnt++;
}
return cnt;
}
main()
{
char str[81], substr[3] ;
int n ;
Cls() ;
printf("\n输入长串:\n");
gets(str) ;/*输入测试字符串*/
printf("\n输入子串:\n");
gets(substr) ;/*输入测试子字符串*/
puts(str) ;
puts(substr) ;
n=findStr(str, substr) ;
printf("n=%d\n", n) ;
ReadWrite() ;
Message();
}
void ReadWrite(void)
{
char str[80];
FILE *fp,*out;
fp=fopen("data.in","r");
out=fopen("out.dat","w");
while(!feof(fp))
{
fscanf(fp,"%s\n",str);
fprintf(out,"%d\n",findStr(str, "jk"));
}
fclose(fp);
fclose(out);
}
参考答案:没发现什么问题啊,要是有问题,可能就是因为你的data.in的路径不对,你试试用绝对路径,比如把data.in,out.dat放在C:/