- 284 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 22:40:21 ]
- int main(void)
{ char buf[LINE_BUF]; char buf2[LINE_BUF]; char *log[10]; char *log2[10]; FILE *fp = fopen("a.txt", "r"); FILE *fp2 = fopen("b.txt", "r"); while(fgets(buf, sizeof buf, fp))//NULLが返ってくるまで・・・ { while(fgets(buf2, sizeof buf2, fp2))//NULLが返ってくるまで・・・ { if(strncmp(buf,buf2,3)==0)//先頭から3文字が一致したらbreak { break; } else if(strncmp(buf,buf2,3)>0)//a.txtの行の値のほうが大きくなった=つまりb.txtにはもう存在しないため抜き出す { printf("%s",buf); break; } } } fclose(fp); return 0; } ファイルは降順にソートされています。 a.txtにあってb.txtない行を抜き出すプログラムのつもりですが、当然正常に処理されていません。 2重目のwhile文で、抜けるたびに行を先頭から見るいくにはどうしたらよいでしょうか?(今のプログラムだと抜けるたびに次の行へ移動してしまいます)
|

|