c - 从文件中获取一个字符后的整数

标签 c scanf

我正在尝试像这样读取一个 txt 文件的编号:

input=20
output=10
hidden=5
....

我试过这段代码:

char line[30];
char values[100][20];
int i = 0;
FILE *fp;

fp = fopen("myFile.txt", "r");

if(fp == NULL)
{
    printf("cannot open file\n");
    return 0;
}
while(fgets(line, sizeof(line), fp) != NULL)
{
     sscanf(line, "%[^=]", values[i])
        printf("%s\n", values[i]);

    i++;
}
fclose(fp);

但我只获得了第一个单词,而没有获得 = 之后的数字。

我明白了

input
output
etc 

代替

20
10
5
etc

我怎样才能得到这个号码??

最佳答案

这一行

sscanf(line, "%[^=]", values[i]);

表示“阅读所有内容,但不包括 = 符号到 values[i]”。

如果您对等号之后的数字部分感兴趣,请按如下方式更改调用:

sscanf(line, "%*[^=]=%19s", values[i]);

此格式行的意思是“读取并忽略(因为有星号)直到并包括等号的所有内容。然后将长度最多为 19 个字符的字符串读入 values[i]”。

Demo.

关于c - 从文件中获取一个字符后的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813763/

相关文章:

c - 使用fscanf时需要定义的缓冲区大小是多少?

c - 我如何从字符数组中拆分字符串

c - 我什么时候应该在 scanf() 中使用 & 符号

c - 在 TCP/IP 套接字中从客户端向服务器发送结构

c - 为什么结构的大小不同于结构指针的大小

java - JNI 错误 - 使用 CallVoidMethod 时无法调用 [方法]

c - wget 命令将输入​​作为文件,并且文件必须包含 url 和字符串参数

c - 如何确定预处理器中 C 整数类型 MIN/MAXes 的关系?

c - sscanf 读取直到字符串末尾

c - 从C中的一行中解析可变数量的不同类型的整数