我讀輸入文件和我有關於閱讀每一行它的併發症。我的輸入文件有兩種類型的記錄。一個有52個字符,而另一個有926個。我不知道如何處理我的fread函數,以便它可以處理這兩個記錄。誰能幫我嗎?感謝文件閱讀C.併發症用fread功能
#define LINESZ 927 /* one extra byte for new line */
int num; /* integer for line number */
char buffer[LINESZ]; /* buffer for file read line */
int main()
{
FILE *ifp, *ofp;
ifp = fopen("dd:INPUTF", "r");
ofp = fopen("dd:OUTPUTF", "w");
while (!feof(ifp)) {
if (num = (fread(buffer, sizeof(char), LINESZ, ifp))) {
if (buffer[22] == 'O') {
printf("ravroot, %c\n", buffer[22]);
printf("%s*\n", buffer);
}
else if (buffer[22] == 'A') {
printf("ravrate, %c\n", buffer[22]);
printf("%s*\n", buffer);
}
}
}
fclose(ifp);
fclose(ofp);
return(0);
}
您需要在文件中添加記錄長度。 – Rohan
請發佈代碼和您看到的錯誤 – MoMo
我將我的代碼調整爲讀取927個字符來處理兩者。但每次它讀取具有52個字符的記錄時,它會從旁邊的記錄中獲取字符,直到它滿足926的長度。 – entendezEJ