c语言逐行读取文件?

如题所述

在C语言中,可以使用fgets函数逐行读取文件。函数声明如下:

char *fgets(char *buf, int bufsize, FILE *stream);

该函数来自头文件stdio.h。它的功能是从文件结构体指针stream中读取一行数据,保存在buf指向的字符数组中。bufsize-1个字符后会自动添加'\0'。如果读取的行不足bufsize个字符,则会读完该行并结束。若该行(含最后一个换行符)的字符数超过bufsize-1,则fgets仅返回不完整的行,但缓冲区始终以NULL字符结尾。在后续调用时,它将继续读取该行。如果函数成功,则返回buf;若读取到文件结尾,eof指示器被设置,如果未读取任何字符即遇到这种情况,则buf保持不变,返回NULL;若发生读取错误,error指示器被设置,返回NULL,buf的值可能被改变。

以下是一个示例代码,用于逐行读取in.txt中的数据并打印,每行不超过100个字符:

int main() {
FILE* fp;
char buf[101];
fp = fopen("in.txt", "r");
while (fgets(buf, sizeof(buf), fp)) {
printf("%s\n", buf);
}
fclose(fp);
return 0;
}

通过此代码,我们可以实现文件的逐行读取和打印功能。
温馨提示:答案为网友推荐,仅供参考
相似回答