C、如何结合使用fgets和fscanf

2024-01-23

我有一份大学作业。 即使用文件IO。

有这样的TXT文件:

Brian
s213551 50 70 70 50
Alex Fernandes
s210011 70 81 50 89
Young Lee
s211213 60 80 60 90
... and more

我必须读取这个文件并将其保存到 struct 中的 var 中。 和教授。对我说。我必须一起使用 fgets 和 fscanf 。 如果我只使用 fscanf 它不能很好地工作,因为“Alex Fernandes”中有空间。

但即使我一起使用 fgets 和 fscanf,它也不起作用.. 所以我需要帮助你。

这是我的来源:

#include <stdio.h>
#include <stdlib.h>

typedef struct sMember{
        char name[10];
        char id[10];
        int score[4];
        double avg;
        char grade;
}MEM;

int main(int argc, char *argv[])
{
  MEM member[50];
  FILE *f;
  char fileName[10];
  char s[512];
  int i;
  printf("File Name : ");
  scanf("%s", fileName);
  fflush(stdin);

  i=0;
  if((f = fopen(fileName, "r")) != NULL )
  {

//        while(!feof(f)) 
          while(fgets(member[i].name, sizeof(member[i].name), f) != 0)
        {
         fscanf(f, "%s %d %d %d %d", member[i].id, &member[i].score[0], &member[i].score[1], &member[i].score[2], &member[i].score[3]);

         printf("%s %s %d %d %d %d\n", member[i].name, member[i].id, member[i].score[0], member[i].score[1], member[i].score[2], member[i].score[3]);
         //printf("t: %s\n", member[i].name);
         i++;               
        }
  } 
  else 
  {
      printf("File is Not Exist.\n"); 
  }


  fclose(f);
  system("PAUSE");  
  return 0;
}

只需在末尾添加一个空格即可fscanf()参数来使用换行符。

fscanf(f, "%s %d %d %d %d ", member[i].id, &member[i].score[0], &member[i].score[1], &member[i].score[2], &member[i].score[3]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C、如何结合使用fgets和fscanf 的相关文章

随机推荐

  • 如何列出 Mercurial (hg) 中存储库中的所有文件?

    Mercurial 中是否有一个命令可以列出当前受源代码控制的所有文件 我可以做一个dir s列出我的文件夹和子文件夹中的所有文件 但我不知道哪些文件已添加到我的存储库中 我有各种排除的文件类型和文件夹 我想验证在将它们设置到 hgigno
  • C For 循环跳过第一次迭代和循环 scanf 中的虚假数字

    我正在为学校创建一个邮件标签生成器 但遇到了一些问题 我的程序是获取从 0 到 10 的个人的全名 地址 城市 州和邮政编码 运行我的程序时 我遇到两个主要问题 for 循环跳过全名 safergets 并转到地址safergets 我继续
  • 如何动态添加槽值到Alexa技能

    我是 Alexa 开发的新手 我已使用 AWS lambda 函数和 Node js 代码成功创建了 Alexa 技能 这是我的意图模式 intents slots name locationName type LOCATION LIST
  • 如何将单选按钮与 html 中的图像垂直居中对齐?

    我有多个 100x100 的图像 我要求用户通过在每个选项前放置一个单选按钮来选择其中一个 这是代码 div div
  • 为什么 PowerShell 会分割包含连字符和句点的参数?

    在 PowerShell 窗口中 PS C gt echo abc def ghi abc def ghi 由于某种原因 连字符和句点的组合导致 Powershell 将参数分成两行 如果没有连字符 则不会出现 PS C gt echo a
  • 如何在 Perl CGI 脚本中生成长时间运行的进程?

    我现在正在编写一个 Perl CGI 脚本 但它正在成为资源消耗者 并且它不断被我的 Web 主机杀死 因为我不断达到进程内存限制 我想知道是否有一种方法可以将我的脚本拆分为多个脚本 然后让第一个脚本调用下一个脚本 然后退出 这样整个脚本就
  • 我的 wordpress wp-api 测试数据中缺少什么?

    我正在使用 wp api 进行测试 顺便说一句 我很高兴使用它 这是我所做的 安装了 wp api 并验证我可以使用 cURL 从网站获取 安装了基本身份验证 并为此测试创建了编辑器级别帐户 我尝试在 Chrome 中使用 cURL 和 P
  • 在 AngularJS 中的 ng-repeat 中使用 ng-model 进行绑定

    我正在尝试将模型 用户 绑定到输入字段列表 我事先不知道这些字段 所以我必须编写通用代码来根据字段设置表单 div ul li li ul div
  • Material UI / Webpack / React - 生产模式下的类名优化/缩小

    webpack v4 material ui v4 9 6 react v16 12 0 通常情况下 所有类都应该是第一个示例中的最后一个类 由于生产模式上的某些原因 许多类没有改变 任何想法 示例1 div class MuiDrawer
  • 如何在旧版(非 WebExtensions)Firefox 插件中获取 Windows 用户名?

    我正在使用 Firefox 插件 用 JavaScript 编写 需要确定当前登录的 Windows 用户 有没有办法做到这一点 这在 Windows 上可以解决问题 function getUser return Components c
  • Spring Boot 中的 JSON Java 8 LocalDateTime 格式

    我在 Spring Boot 应用程序中格式化 Java 8 LocalDateTime 时遇到一个小问题 对于 正常 日期 我没有问题 但 LocalDateTime 字段会转换为以下内容 startDate year 2010 mont
  • 在 C++ 中找到一对椭圆的公切线的首选方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想用 C 来做这个 我有两个想法可以做到这一点 将这对椭圆视为两个不同参数的参数方程 我可以根据这两个参数得到两个方程 这对方程是非
  • 如果没有const引用临时对象会被删除吗?

    我们来看看这两个函数 std string get string std string ret value Calculate ret value return ret value void process c string const c
  • 广播有延迟

    我们使用广播来传达远程服务和 UI 之间的状态更改 这样做时 我们发现了一个非常奇怪的行为 有时 我找不到任何线索为什么 这些广播会延迟 8 秒左右 我们如何发送它们 非常基本 mState只是一个枚举 服务中的远程进程 Intent in
  • D3 反转色标图以获得幅度

    我有一个 colorscaleMap 让我们假设这样的事情 d3 scale linear domain 0 01 0 02 0 03 0 04 0 05 range 5100ff 00f1ff 00ff30 fcff00 ff0000 现
  • 将文件存储在批处理文件中?

    您好 我正在尝试将二进制文件存储在我编写的基本批处理脚本中 基本上我希望脚本能够在某个时候输出这个预构建的文件 而不是从头开始创建它 如果这是不可能的 那么我必须将此文件与批处理文件分开包含 然后将其移动到必要的位置 但我宁愿让此文件对用户
  • 我可以从 node.js 设置 ulimit 吗?

    我想限制子进程写入太多数据或占用太多CPU时间 无限循环 在 C 中 我会调用 setrlimit 2 来做到这一点 Node js中有类似的东西吗 据我所知 没有node js扩展提供setrlimit 功能 但您可以通过一个小的 she
  • PHP 准备好的语句返回 -1

    我使用准备好的语句已经有一段时间了 从来没有遇到过任何问题 现在我正在尝试 sql SELECT PhotoID Caption FROM Photos WHERE EntityID AND TypeID LIMIT iDB new mys
  • 在 Perl 中使用 foreach 或 while 迭代文件有什么区别?

    我有一个文件句柄FILE在 Perl 中 我想迭代文件中的所有行 以下有区别吗 while
  • C、如何结合使用fgets和fscanf

    我有一份大学作业 即使用文件IO 有这样的TXT文件 Brian s213551 50 70 70 50 Alex Fernandes s210011 70 81 50 89 Young Lee s211213 60 80 60 90 an