在 C++ 中读取前缀

reading prefix in C++

我正在编写一个程序来读取包含我的数据以及测量单位的文本文件,例如:

8.9837 ns    ,  8.9826 ns    ,  8.8998 ns    ,  9.0433 ns    ,  143.5 ps 
13.037 ns    ,  13.027 ns    ,  12.983 ns    ,  13.075 ns    ,  91.1  ps 
-16.18 mV    , -17.842 mV    , -39.78  mV    , -9.44   mV    ,  30.34 mV

我正在使用 fgets 读取每一行,然后使用 strtok 删除空格和逗号。当尝试实现一个简单的函数来转换我的测量单位的前缀时,我的问题就出现了。该函数接收 char* 和 returns double。看起来很简单,但是编译 returns:

error: ‘prefixing’ was not declared in this scope

这是我的函数:

double prefixing( char * prefixit )
{
  if(strspn(prefixit, "m") == 1) return 1e-3;
  ...
  return 1.;
}

我是这样称呼它的:

char * p = strtok (line,spliter);
double prefix = prefixing(p);

任何关于我做错了什么的建议将不胜感激。

干杯,

可能 prefixing 定义在调用该方法的行之后。这是不允许的,需要移动定义或者前向声明让编译器知道函数存在,eg:

double prefixing(char*); // forward declaration

...
double prefix = prefixing(p);
...

double prefixing(char* prefixit) { // definition

}