FORTRAN文件操作的一个问题
现在我希望以FORTRAN的文件操作实现如下功能:请求用户输入某整数i,然后建立i个文件,文件名为依次为text1、text2、……、textn。这个问题的最大困难在于如...
现在我希望以FORTRAN的文件操作实现如下功能:请求用户输入某整数i,然后建立i个文件,文件名为依次为text1、text2、……、textn。
这个问题的最大困难在于如何命名,在open函数的参数列表中的file一项中,它的值无法加入变量。
既然如此,是否有其他的实现方式?或者上述想法应作何种改进?
谢谢您的解答! 展开
这个问题的最大困难在于如何命名,在open函数的参数列表中的file一项中,它的值无法加入变量。
既然如此,是否有其他的实现方式?或者上述想法应作何种改进?
谢谢您的解答! 展开
3个回答
展开全部
Fortran与VB混合编程(http://forest88.bokee.com/5363465.html)
open(s[i], 0x0100,0x0080);的意思是以O_CREAT和可写的方式打开s[i]中指出的文件,如果文件不存在,就创建它。返回这个文件的低级句柄。
函数原型:
int open(const char *path, int access,int mode);
作用:
以各种方式打开文件
返回值:
返回打开的文件句柄,-1 打开失败
输入参数说明:
path 要打开的文件路径和名称
access 访问模式,宏定义和含义如下: O_RDONLY 1 只读打开 O_WRONLY 2 只写打开 O_RDWR 4 读写打开
还可选择以下模式与以上3种基本模式相与:
O_CREAT 0x0100 创建一个文件并打开
O_TRUNC 0x0200 打开一个存在的文件并将文件长度设置为0,其他属性保此
O_EXCL 0x0400 未使用
O_APPEND 0x0800 追加打开文件
O_TEXT 0x4000 打开文本文件翻译CR-LF控制字符
O_BINARY 0x8000 打开二进制字符,不作CR-LF翻译
mode 该参数仅在access=O_CREAT方式下使用,其取值如下:
S_IFMT 0xF000 文件类型掩码
S_IFDIR 0x4000 目录
S_IFIFO 0x1000 FIFO 专用
S_IFCHR 0x2000 字符专用
S_IFBLK 0x3000 块专用
S_IFREG 0x8000 只为0x0000
S_IREAD 0x0100 可读
S_IWRITE 0x0080 可写
S_IEXEC 0x0040 可执行
int open(const char *path, int access,int mode);
再采用循环语段 进行编程
open(s[i], 0x0100,0x0080);的意思是以O_CREAT和可写的方式打开s[i]中指出的文件,如果文件不存在,就创建它。返回这个文件的低级句柄。
函数原型:
int open(const char *path, int access,int mode);
作用:
以各种方式打开文件
返回值:
返回打开的文件句柄,-1 打开失败
输入参数说明:
path 要打开的文件路径和名称
access 访问模式,宏定义和含义如下: O_RDONLY 1 只读打开 O_WRONLY 2 只写打开 O_RDWR 4 读写打开
还可选择以下模式与以上3种基本模式相与:
O_CREAT 0x0100 创建一个文件并打开
O_TRUNC 0x0200 打开一个存在的文件并将文件长度设置为0,其他属性保此
O_EXCL 0x0400 未使用
O_APPEND 0x0800 追加打开文件
O_TEXT 0x4000 打开文本文件翻译CR-LF控制字符
O_BINARY 0x8000 打开二进制字符,不作CR-LF翻译
mode 该参数仅在access=O_CREAT方式下使用,其取值如下:
S_IFMT 0xF000 文件类型掩码
S_IFDIR 0x4000 目录
S_IFIFO 0x1000 FIFO 专用
S_IFCHR 0x2000 字符专用
S_IFBLK 0x3000 块专用
S_IFREG 0x8000 只为0x0000
S_IREAD 0x0100 可读
S_IWRITE 0x0080 可写
S_IEXEC 0x0040 可执行
int open(const char *path, int access,int mode);
再采用循环语段 进行编程
参考资料: http://webservices.ctocio.com.cn/net/17/9475017.shtml
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询