|
はじめまして。taitoと申します。
早速ですが質問です。
以下のプログラムで、test.txtを使って実行すると、
% ./ota test.txt
abcdefghijk
fp1...l
fp2...
fp1...m
fp1...n
fp2...o
%
のように結果がでます。なぜ、最後のfp2は o になるのでしょうか?
m になるのではと思うのですが...。
これはfp1とfp2が同じものとして扱われているのでしょうか?
#include<stdio.h>
int main(int argc, char *argv[])/*ファイル名を受け取る*/
{
FILE *fp1, *fp2;
int Ch[500], i=0;
if(argc != 2){
printf("パラメータの数が違います。\n");
return 1;
}
fp1=fopen(argv[1], "r");
fp2=fopen(argv[1], "r");
/*ファイルオープンのエラー処理*/
if(fp1==NULL || fp2==NULL){
printf("ファイルをオープンできませんでした。\n");
return 1;
}
while((Ch[i]=fgetc(fp1))!='\n'){
printf("%c", Ch[i]);
i++;
}
printf("\n");
Ch[i]=fgetc(fp1);
Ch[i+1]=fgetc(fp2);
printf("fp1...%c\n", Ch[i]);
printf("fp2...%c\n", Ch[i+2]);
printf("\n");
fp2=fp1;
Ch[i+2]=fgetc(fp1);
Ch[i+3]=fgetc(fp1);
Ch[i+4]=fgetc(fp2);
printf("fp1...%c\n", Ch[i+2]);
printf("fp1...%c\n", Ch[i+3]);
printf("fp2...%c\n", Ch[i+4]);
return 0;
}
test.txtの内容
abcdefghijk
lmnopqr
|