发布
社区首页 >问答首页 >C中用于读取(几乎)任意txt dataline的通用结构

C中用于读取(几乎)任意txt dataline的通用结构
EN

Stack Overflow用户
提问于 2013-03-07 11:31:50
回答 2查看 103关注 0票数 0

我想从文本文件中读入数值数据行。这一行有两个部分:第一部分是一个索引,可以是一个整数,两个整数,...or根本不是整数!第二部分可以是一个或两个整数、双精度或浮点数类型的数字。

从文件头我知道会发生什么,但是我如何在不使用if/case的情况下在C中读取这些行呢?我已经想到了联合,X宏,enums...etc。雪上加霜的是,我不能在C中指向数据类型,因为我在想,一旦我可以确定我的大小写,我就可以指向适当的数据类型。至少我可以指向一个函数。

目标是简单地将数据加载到内存中。我想使用structs,但不,我想我会有指向每个部分的指针。

我是不是对C要求太高了?

EN

回答 2

Stack Overflow用户

发布于 2013-03-07 12:26:21

您实际上只有包含1到4个数字的行。所以:

代码语言:javascript
代码运行次数:0
复制
char line[LINE_MAX]; // populate this somehow
double values[4];
int count = sscanf(line, "%f %f %f %f", &values[0], &values[1], &values[2], &values[3]);
// now count tells you how many values were read, so ignore the others

你可能会说,“但是我也想要整数支持!”好吧,你得到它了。没有任何"if“语句就可以得到它。所以要高兴,要知道很多编程语言(例如Javascript,Lua)也不会真的担心这种区别。

票数 1
EN

Stack Overflow用户

发布于 2013-03-08 11:59:50

我想我要生成的函数都使用相同的指针数组。

我将手动编写处理0、1或2索引的函数,但使用像这样的宏来生成数据类型

代码语言:javascript
代码运行次数:0
复制
int readingfunc1(aline,arrofp){

return sscanf(aline,"%d XSTRFORMATDATATYPESLIST XSTRFORMATDATATYPESLIST", arrofp[2],arrofp[3])
//arrofp={arrofp[0], NULL, arrofp[2],arrofp[3]}

适当的func0和func2。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15262588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档