C++ 如何从C++;
我试图从C++调用FORTRAN“打开”函数(从LIGBGROTRAN导入。“打开”函数不是直接从C++调用,因为它需要一个命名参数列表,与具有直接的参数列表相对应。在Fortran中,这些命名参数可以按任何顺序调用,并且可以排除任何参数 Fortran示例:C++ 如何从C++;,c++,fortran,C++,Fortran,我试图从C++调用FORTRAN“打开”函数(从LIGBGROTRAN导入。“打开”函数不是直接从C++调用,因为它需要一个命名参数列表,与具有直接的参数列表相对应。在Fortran中,这些命名参数可以按任何顺序调用,并且可以排除任何参数 Fortran示例: OPEN(UNIT=11, FILE="my_file.dat", ERR=90) #and there are many other possible arguments 在C++中: extern "
OPEN(UNIT=11, FILE="my_file.dat", ERR=90) #and there are many other possible arguments
在C++中:
extern "C"
{
void open(long* UNIT, <named arguments>);
}
int main(int argc, const char * argv[])
{
long unit_num = 11;
char my_file[] = "my_file.dat";
open(&unit_num, my_file); //not sure how named arguments are specified here either
}
extern“C”
{
空开(长*单位,);
}
int main(int argc,const char*argv[]
{
长单位_num=11;
char my_file[]=“my_file.dat”;
open(&unit_num,my_file);//也不确定此处如何指定命名参数
}
<>你如何在C++中指定这些命名参数?如果这是不可能的,还有其他方法让FORTRAN打开文件并给我单位号,或者使用FOpenD打开文件,并以某种方式与FORTRAN运行时共享它(获取该文件的单位号)。< /P>为什么您想在C++中打开FORTRAN单元/文件?你不能真正地(明智地)用C++中的单元做任何事情。如果你想做Fortran的I/O处理,在Fortran运行时打开;如果你想做C++ I/O,在C++运行时打开文件。我在C++接口中包装了FORTRAN库。我需要单元号以便与该库交互(该库用于解析一些复杂的数据文件)。我尝试这样做,我不需要编写额外的FORTRAN代码。您可以在调用<代码>打开/代码>的情况下创建FORTRAN包装器,它将单元号返回到C++外部。简单的是好的,但这里确实是一个额外的FORTRAN很简单的情况。但是值得注意的是,在Fortran中,
open
本身不是一个函数,unit=11
不是一个带关键字的参数。在运行时将有底层函数调用,但它远不是可移植的。Fortran没有OPEN
函数。Fortarn有一个OPEN
语句。这是两个完全不同的事情。为什么要在C++中打开FORTRAN单元/文件?你不能真正地(明智地)用C++中的单元做任何事情。如果你想做Fortran的I/O处理,在Fortran运行时打开;如果你想做C++ I/O,在C++运行时打开文件。我在C++接口中包装了FORTRAN库。我需要单元号以便与该库交互(该库用于解析一些复杂的数据文件)。我尝试这样做,我不需要编写额外的FORTRAN代码。您可以在调用<代码>打开/代码>的情况下创建FORTRAN包装器,它将单元号返回到C++外部。简单的是好的,但这里确实是一个额外的FORTRAN很简单的情况。但是值得注意的是,在Fortran中,open
本身不是一个函数,unit=11
不是一个带关键字的参数。在运行时将有底层函数调用,但它远不是可移植的。Fortran没有OPEN
函数。Fortarn有一个OPEN
语句。这是两件完全不同的事情。