【发布时间】:2014-03-19 05:44:03
【问题描述】:
我正在读取一个输入文件,但我在读取其中的每一行时遇到了麻烦。我的输入文件有两种类型的记录。一个有 52 个字符,另一个有 926 个字符。我不知道如何处理我的 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);
}
【问题讨论】:
-
您需要在文件中添加记录长度。
-
请贴出您看到的代码和错误
-
我将代码调整为读取 927 个字符以同时处理这两个字符。但每次读取 52 个字符的记录时,它都会从旁边的记录中获取字符,直到满足 926 长度。
-
我没有任何错误@MoMo。只是输出错误。
-
@entendezEJ 你打开两个文件输入读取和输出写入正确吗?但是你在哪里使用输出文件指针呢?