在 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
}
我正在编写一个程序来读取包含我的数据以及测量单位的文本文件,例如:
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
}