c - 如何在C中读取并保存txt的可变部分

标签 c if-statement

我一直在寻找有关此主题的一些答案,但我只看到类似的内容:读取带有空格的内容并将其显示在屏幕上。

我的问题是一个类似的问题,但添加了一个变体。

假设您有一个文件:

michael;man;25,34,12,34

我的问题是,如何才能使用这一行并保存数字,并且仅保存某个数组中的数字?

我一直在尝试读取该行并显示它以进行一些测试的典型方法,但我找不到如何将此部分保留在某个数组中:

const int NUMBEROFLINES = 4;
FILE *fp
int i;
char leer[100] = "";

    fp = fopen("name.txt", "r");
    if (fp == NULL)
    {
       perror("ERROR");
    }
  for (i=0;i<NUMBEROFLINES;i++)
  {
   fgets(read, 100, fp);
   puts(read);
   read[strlen(leer)] = '\0';
} 
close(fp);

最佳答案

您可以使用strtok()获取由 ; 分隔的标记,然后您可以使用 strtol()或者编写自己的函数来循环每个标记字符串中的字符并检查每个字符是否是数字(ASCII 代码比较)。如果字符串都是数字字符,则将其保存到数组中,否则不保存。

关于c - 如何在C中读取并保存txt的可变部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33843495/

相关文章:

c - 如何将 typedef 结构传递给函数?

c - 使用递归回文

c - 将连续符号替换为另一个符号

c - 请帮助找到 glib 示例的来源

JAVA - 使用 else if 扫描仪输入的年龄比较

php - 我有两个 if 和一个 else 条件,但 else 条件不起作用并且总是显示

c - 尝试从结构中检索 U32 时程序崩溃

java - 如何在 if 循环中排除负数?

python - 一个条件数未知的 if 语句 python

r - 有没有更快的方法来检查列表中的列表是否相等?