C 语言文件读取全指南:打开、读取、逐行输出

打印 上一主题 下一主题

主题 911|帖子 911|积分 2733

C 语言中的文件读取

要从文件读取,可以使用 r 模式:
  1. FILE *fptr;
  2. // 以读取模式打开文件
  3. fptr = fopen("filename.txt", "r");
复制代码
这将使 filename.txt 打开以进行读取。
在 C 中读取文件需要一点工作。坚持住!我们将一步一步地指导您。
接下来,我们需要创建一个足够大的字符串来存储文件的内容。
例如,让我们创建一个可以存储多达 100 个字符的字符串:
  1. FILE *fptr;
  2. // 以读取模式打开文件
  3. fptr = fopen("filename.txt", "r");// 存储文件的内容char myString[100];
复制代码
为了读取 filename.txt 的内容,我们可以使用 fgets() 函数。
fgets() 函数接受三个参数:
  1. fgets(myString, 100, fptr);
复制代码

  • 第一个参数指定要存储文件内容的位置,它将位于我们刚刚创建的 myString 数组中。
  • 第二个参数指定要读取的最大数据大小,它应该与 myString 的大小 (100) 匹配。
  • 第三个参数需要一个用于读取文件的文件指针(示例中的 fptr)。
现在,我们可以打印字符串,它将输出文件的内容:
  1. FILE *fptr;
  2. // 以读取模式打开文件
  3. fptr = fopen("filename.txt", "r");// 存储文件的内容char myString[100];// 读取内容并将其存储在 myString 中fgets(myString, 100, fptr);// 打印文件内容printf("%s", myString);// 关闭文件fclose(fptr);Hello World!
复制代码
运行示例 »
注意:fgets() 函数只会读取文件的第一行。如果您还记得,filename.txt 中有两行文本。
要读取文件的每一行,您可以使用 while 循环:
  1. FILE *fptr;
  2. // 以读取模式打开文件
  3. fptr = fopen("filename.txt", "r");// 存储文件的内容char myString[100];// 读取内容并打印while(fgets(myString, 100, fptr)) {  printf("%s", myString);}// 关闭文件fclose(fptr);Hello World!Hi everybody!
复制代码
运行示例 »
良好实践

如果您尝试打开不存在的用于读取的文件,fopen() 函数将返回 NULL。
提示:作为一种良好的实践,我们可以使用 if 语句测试 NULL,并在文件不存在时打印一些文本:
  1. FILE *fptr;
  2. // 以读取模式打开文件
  3. fptr = fopen("loremipsum.txt", "r");
  4. // 如果文件不存在,打印一些文本
  5. if(fptr == NULL) {
  6.   printf("无法打开文件。");
  7. }
  8. // 关闭文件
  9. fclose(fptr);
复制代码
如果文件不存在,则会打印以下文本:
无法打开文件。
运行示例 »
考虑到这一点,如果我们再次使用上面的“读取文件”示例,我们可以创建更可持续的代码:
  1. FILE *fptr;
  2. // 以读取模式打开文件
  3. fptr = fopen("filename.txt", "r");// 存储文件的内容char myString[100];// 如果文件存在if(fptr != NULL) {  // 读取内容并打印  while(fgets(myString, 100, fptr)) {    printf("%s", myString);  }// 如果文件不存在} else {  printf("无法打开文件。");}// 关闭文件fclose(fptr);Hello World!Hi everybody!
复制代码
C 语言中的结构体 (structs)

结构体(也称为 structs)是一种将多个相关变量组合到一起的方法。结构体中的每个变量称为结构体的“成员”。
与数组不同,结构体可以包含许多不同的数据类型 (int, float, char 等)。
创建结构体

您可以使用 struct 关键字并用花括号声明其每个成员来创建结构体:
  1. struct MyStructure { // 结构体声明
  2.   int myNum; // 成员 (int 变量)
  3.   char myLetter; // 成员 (char 变量)
  4. }; // 以分号结束结构体
复制代码
要访问结构体,您必须创建一个变量。
在 main() 方法中使用 struct 关键字,后跟结构体的名称和结构体变量的名称:
创建名为 "s1" 的结构体变量:
  1. struct MyStructure {
  2.   int myNum;
  3.   char myLetter;
  4. };
  5. int main() {
  6.   struct MyStructure s1;
  7.   return 0;
  8. }
复制代码
最后

为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表