c语言字体读取方式,C语言字符串方式读文件

C语言字符串方式读文件教程

使用 fgets 函数读取文件时,读取到 n -1 个字符之前如果出现了换行,或者读到了文件末尾,则读取结束。这就意味着,不管 n 的值多大,fgets() 最多只能读取一行数据,不能跨行。

C语言fgets函数详解

语法

char *fgets(char *str, int n, FILE *fp);

参数

参数

描述

str

保存读取的内容的字符数组。

n

要读取的字符数目。

fp

文件指针。

返回值

读取成功时返回

头文件

fgetc 函数在 stdio.h 的头文件里面。

技术细节

读取到的字符串会在末尾自动添加 ‘\0’,n 个字符也包括 ‘\0’。也就是说,实际只读取到了 n-1 个字符,如果希望读取 100 个字符,n 的值应该为 101。

读取到 n -1 个字符之前如果出现了换行,或者读到了文件末尾,则读取结束。这就意味着,不管 n 的值多大,fgets() 最多只能读取一行数据,不能跨行。

在 C 语言中,没有按行读取文件的函数,我们可以借助 fgets(),将 n 的值设置地足够大,每次就可以读取到一行数据。

案例

字符串方式读文件

使用 fopen 函数打开文件,使用 fgets 函数以字符串方式读文件

#include

#include

int main(){

printf("嗨客网(www.haicoder.net)\n\n");

FILE *fp = NULL;

char str[100];

if ( (fp = fopen("c:\\1.txt", "r")) == NULL )

{

puts("Open file failed\n");

return;

}

else

{

puts("Open file success\n");

}

if (fgets(str, 100, fp) == NULL)

{

puts("Read file error\n");

}

else

{

printf("Read file success, str = %s\n", str);

}

printf("\n");

int ret = fclose(fp);

if (ret == 0)

{

puts("Close file success\n");

}

else

{

puts("Close file failed\n");

}

return 0;

}

程序运行后,控制台输出如下:

cd69a05527645b92848ddf4384835ebe.png

我们首先,使用了

按行读取整个文件

使用 fgets 函数按行的方式读取整个文件

#include

#include

int main(){

printf("嗨客网(www.haicoder.net)\n\n");

FILE *fp = NULL;

char str[100];

if ( (fp = fopen("c:\\1.txt", "r")) == NULL )

{

puts("Open file failed\n");

return;

}

else

{

puts("Open file success\n");

}

while (fgets(str, 100, fp) != NULL)

{

printf("Read line = %s", str);

}

printf("\n");

int ret = fclose(fp);

if (ret == 0)

{

puts("Close file success\n");

}

else

{

puts("Close file failed\n");

}

return 0;

}

程序运行后,控制台输出如下:

8130494d064eccba36f6734c067701a7.png

我们在打开文件之后,使用了

C语言字符串方式读文件总结

使用 fgets 函数读取文件时,读取到 n -1 个字符之前如果出现了换行,或者读到了文件末尾,则读取结束。这就意味着,不管 n 的值多大,fgets() 最多只能读取一行数据,不能跨行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值