c - 在 fscanf 中匹配两个以 = 作为分隔符的字符串

标签 c scanf

我的目标是提取由 = 分隔的值和键。我最初的想法是使用类似 %s=%s 的东西,但不幸的是它不起作用。

所以我有一个文件:

A=1
B=2

所以我打开文件:

char *key;
char *value;

FILE* file = fopen("./file", "r");
do {
  fscanf(file, "%[^'=']=%[^'\n']\n", key, value);
  printf("key:%s value:%s\n", key, value);
} while(!feof(file));

但是键和值都会返回:

key:1 value:1
key:2 value:2

知道为什么我的表达不匹配吗?

最佳答案

keyvalue 变量必须被分配,例如

char key[100];
char value[1000];

然后使用它们。

关于c - 在 fscanf 中匹配两个以 = 作为分隔符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26401108/

相关文章:

c - 删除条目和在链接列表中插入条目功能对错误条目进行操作

c - 使用条件变量进行线程间通信?

c - 多个 '++' 在变量和指针中工作

c - 我的 C 代码在 scanf 语句后没有响应

C 跳过函数的一个命令?

Objective-C 调用 C 函数 - 链接器命令失败,退出代码为 1

c - 如何实现循环切换布局?

c - 如果从文件中输入的值为空,scanf 会发生什么?

c、导入不同行的文本文件并处理行

c - 将字符串放在 float 应该在的位置?