5/5/9 6/6/10 8/8/11 7/7/12 6/6/7
7/7/13 8/8/14 2/10/15 1/9/16
2/2/17 8/11/18 6/12/19 4/4/20
7/13/21 1/1/22 3/3/23 5/14/24
文件如上f.txt,逐行读取,如若后面跟的是三个字符串,直接读取成1 2 3,四个则读取成1 2 3,3 4 1两行数据,如果是五个则读取成1 2 3,3 4 1,4 5 1三行数据,最多五个。其中12345是指第几个字符串。高手们,求助呀,写了一个,只能读一行。郁闷,不会跳到下一行。
#include <stdio.h>
#include <string.h>
int main(void)
{
char tmp[1024];
char myarray[5][20],str[81];
char c;
int i,num=0,word=0;
char *bak=tmp;
FILE *fp=fopen("e://f.txt","rt");
if(!fp)
{
printf("can't open file ,exiting ...\n");
}
while(fgets(bak =tmp,1023,fp))
{
for(i=0;(c=str[i])!='\n';i++)
{
if(c==' ')
word=0;
else if(word==0)
{
word=1;
num++;
}
}
if(num==3)
{
sscanf(tmp,"%s %s %s\n",myarray[0],myarray[1],myarray[2]);
printf("%s %s %s\n", myarray[0],myarray[1],myarray[2]);
}
putchar('\n');
if(num==4)
{
sscanf(tmp,"%s %s %s %s\n",myarray[0],myarray[1],myarray[2],myarray[3]);
printf("%s %s %s\n", myarray[0],myarray[1],myarray[2]);
printf("%s %s %s\n", myarray[2],myarray[3],myarray[0]);
}
putchar('\n');
if(num==5)
{
sscanf(tmp,"%s %s %s %s %s\n",myarray[0],myarray[1],myarray[2],myarray[3],myarray[4]);
printf("%s %s %s\n", myarray[0],myarray[1],myarray[2]);
printf("%s %s %s\n", myarray[2],myarray[3],myarray[0]);
printf("%s %s %s\n", myarray[3],myarray[4],myarray[0]);
}
putchar('\n');
}
return 0;
}