1
これまでのコードはコンパイルして実行しますが、出力ファイルではフィボナッチ数ファイルから数値を読み込み、各数値のフィボナッチ数を見つけ、新しいファイルにフィボナッチ数を書き込む
私はフィボナッチ数を見つけるループが正しいと思います。なぜなら、適切に機能していた別のプログラムからループをコピーしたからです。
#include <stdio.h>
#include <ctype.h>
#define SIZE 40
int main(void)
{
char ch, filename[SIZE]; //variables
int num;
int t1 = 0;
int t2 = 1;
int index;
int result;
FILE *fp;
printf("Please enter the filename to read: "); //asking for file that is to be read
gets(filename);
// "r" reads the file fopen opens the file
if ((fp = fopen(filename, "r")) == NULL)
{
printf("Cannot open the file, %s\n", filename);
}
else
{
puts("Successfully opened, now reading.\n"); //reads through file counting words, upper/lowercase letters, and digits.
while ((num=getw(fp)) != EOF)
{
if(num == 1) //if the nth term is 1
result = 0;
else if(num == 2) //if the nth term is 2
result = 1;
else //for loop to start at the 3rd term
{
for(index = 2; index <= num ; index++)
{
result = t1 + t2;
t1 = t2;
t2 = result;
}
}
}
}
fclose(fp); //closing the file
char filename2 [SIZE];
FILE *fp2;
fprintf(stdout, "Please enter the file name to write in: "); //asks for file that you want to write to
gets(filename2);
if ((fp2 = fopen(filename2, "w")) == NULL) //"w" for writing
{
printf("Cannot create the file, %s\n", filename2);
}
else
{
fprintf(fp2, "%d", result);
}
fclose(fp2); // closing the file
fprintf(stdout, "You are writing to the file, %s is done.\n", filename2);
return 0;
}
テキストモードのファイルはgetwで使用されていますが、疑わしいです。入力ファイルのサンプルを提供できますか?テキスト/バイナリですか? –
そのテキストファイルinput.in –