サイズ/行サイズが不明なファイルを読み込むプログラムを作成しようとしていますが、改行文字を検出する際に問題があります。ファイルを読むときに改行をチェックするのに問題があります
私はプログラムを実行すると、whileループ内のラインポイントの最後には到達せず、readFile
で実行されます。私がそれぞれの文字を印刷すると、いくつかの未知の文字が印刷されます。
私はch
をint値に設定し、\n
の比較のためにcharに型キャストするように設定しようとしました。それはEOF
状態にも達していないので、何が起こっているのか分かりません。
コード:
void readFile(FILE* file)
{
int endOfFile = 0;
while (endOfFile != 1)
{
endOfFile = readLine(file);
printf("%d\n", endOfFile);
}
}
int readLine(FILE* file)
{
static int maxSize = LINE_SIZE;
int currentIndex = 0;
int endOfFile = 0;
char* buffer = (char*) malloc(sizeof(char) * maxSize);
char ch;
do
{
ch = fgetc(file);
if ((ch != EOF) || (ch != '\n'))
{
buffer[currentIndex] = (char) ch;
currentIndex += 1;
}
if (currentIndex == maxSize)
{
printf("Reallocating string buffer");
maxSize *= 2;
buffer = (char*) realloc(buffer, maxSize);
}
} while ((ch != EOF) || (ch != '\n'));
if (ch == EOF)
{
endOfFile = 1;
}
parseLine(buffer);
free(buffer);
return endOfFile;
}
誰かが私にはかなりの時間のために、この問題に引っかかってきたので、非常に高く評価されるだろうという私を助けることができれば。前もって感謝します。
私はそれを見ていないとは思わない。私は時間制限の後に正しいとマークします。 – ReallyGoodPie