以下のコードは、ファイル操作がのです。LinuxコンパイラでCコードが機能しない
最初のプログラムはファイルに読み込み、そのプログラムがどの質問をファイルから欲しいかをユーザーに尋ねた後に配列に格納します。ユーザーが入力すると、 "2"プログラムはファイルから2番目の質問を受け取り(ファイル内の2〜3の数字の間にあるすべての文字を取ります)、画面に印刷します。
私はこのコードをWindowsのDEV C++コンパイラに記述しました。これはDev C++で動作しています。
しかしLinux端末でこのコードを試してみると、コードはユーザーに整数を要求しますが、ファイルからの結果を画面に表示しません。エラーは発生せず、プログラムは終了します。
FILE* file = fopen("txt", "r");
char line[256];
char a[10][14];
char getIndex[2];
char firstIndex[2];
char secondIndex[2];
int firstIndexNum;
int secondIndexNum;
printf("Please enter number:");
fgets (getIndex, 100, stdin);
strcpy(firstIndex,getIndex);
firstIndexNum = atoi(firstIndex);
secondIndexNum = firstIndexNum + 1;
sprintf(secondIndex, "%d", secondIndexNum);
int i = 0;
while (fgets(line, sizeof(line), file)) {
strcpy(a[i],line);
i++;
}
int sizeArray = sizeof(a)/sizeof(a[0]);
for(int i=1;i<=sizeArray;i++){
if(strstr(a[i-1], firstIndex) != NULL){
while(strstr(a[i], secondIndex) == NULL){
printf("%s",a[i]);
i++;
}
}
}
fclose(file);
return 0;
}
任意の提案ですか?
Linuxでのプログラムの流れは? –