模拟C ++>> C中的操作员

时间:2014-04-26 16:48:12

标签: c

是否有一种简单的方法可以在C中使用fscanffgets来模拟此行为:

假设我有一个结构如下的文件:

Integer \ t String \ t double

Integer \ s String \ s double

有没有办法在这种情况下应用fscanf将其输入struct

我曾尝试在我的fscanf中使用多个正则表达式,但我未能完成我需要做的事情。

我希望结构看起来像这样:

struct foo {
    int first;
    char * second;
    double third;
};

然后在这3个元素中fscanf

1 个答案:

答案 0 :(得分:2)

这是使用fscanf读取结构数据的方法。

struct foo Foo;
Foo.second = malloc(10); // max string size
fscanf(fp, "%d %s %lf", &Foo.first, Foo.second, &Foo.third);

其中fp是打开文件的FILE *。

请注意,%s只扫描字符串直到下一个空白字符。如果要将空格字符包含在字符串中,则需要重新定义分隔符的工作方式,并可能使用RegEx或编写自己的解析函数。

为了将来参考,可以找到有关如何使用fscanf()的文档here。这包括所有扫描字符串及其工作方式。