【发布时间】:2010-03-28 09:29:30
【问题描述】:
我想逐行读取文件,而不知道之前的行长。到目前为止,这是我得到的:
int ch = getc(file);
int length = 0;
char buffer[4095];
while (ch != '\n' && ch != EOF) {
ch = getc(file);
buffer[length] = ch;
length++;
}
printf("Line length: %d characters.", length);
char newbuffer[length + 1];
for (int i = 0; i < length; i++)
newbuffer[i] = buffer[i];
newbuffer[length] = '\0'; // newbuffer now contains the line.
我现在可以计算出行长,但仅限于短于 4095 个字符的行,而且这两个 char 数组似乎是一种尴尬的完成任务的方式。 有没有更好的方法来做到这一点(我已经使用了 fgets() 但被告知这不是最好的方法)?
--Ry
【问题讨论】: