答案 0 :(得分:1)
如果您知道最大行长度,则循环中的fgets
是一个不错的选择。它还有整个“附加换行符(如果有的话)”,因此您可以轻松检查您刚读过的行是否有换行符。
否则只需使用fread
批量读入缓冲区,当您读取文件的最后一部分时,检查最后一个字符是否为换行符。如果没有,那么搜索最后一个换行符(strrchr
对此是一个很好的函数)并在那里终止缓冲区。
答案 1 :(得分:1)
...将文件加载到缓冲区
找到最后一个'\n'
:
char *end = strrchr(buffer, '\n');
// If \n found
if (end) {
// Insure next char is the null character
*(end + 1) = '\0';
}
} else {
buffer[0] = '\0';
}