回 帖 发 新 帖 刷新版面

主题:还是那个问题,一次提出来,求完整答案,帮帮新手吧

这个问题我发了三个帖子,署名rainboat8的就是,分三次发就是想把问题拆开了慢慢研究明白,奈何答案实在看不懂,有时候又不统一,查半天书发现这貌似不是一两天能搞明白的。后天就要交差了,现在把问题一次晾出来,求一个完整答案,不仅交差,也方便学习,望各路大神再显神通,救救小弟吧,小弟刚会了一点基本的fortran语法就被老师安排了这样的任务……
问题是这样的:
    有一个A.exe,不知道源代码,只能直接运行。它是那种可以跟人交流的程序(这里不知道专业术语叫什么),它会提问题,你要回答n或y,或者数据,它会做出相应反应,并会输出一个文件作为结果。
    我现在要编一个B.f90,在这个程序里use dflib,用里面的runqq('文件名','')函数可以令A.exe程序运行起来(这个试过了,可以用),然后在B中输出一个C.txt文件,C里包含的都是A所需要的n、y或者数据、字符串之类的(这个我还可以勉强做到)。然后问题就来了,A已经运行了,如何让C变成A的“输入者”,即如何把C中的字符或数据作为A的命令,这里有段C++代码好像可以借鉴(不知道好不好用,没试过):
    int   old_in    =  dup(0); 
    FILE*   fin   =   fopen( "111.txt ", "r");            
    dup2(fileno(fin),   0); 
    貌似是把111.txt的什么接口号变成了A的输入接口号。所以我原先发帖求助怎样在fortran中使用api函数,后来又想问怎样fortran和c++混合编程但没问,直接问个全的吧,小弟只会最基本的语法,所以以前的好多回答很惭愧确实看不懂(像有位提到的管道,网上查了也没懂),希望大神能直接告诉我具体过程或者告诉我具体该查哪一章节。
    这个问题问个好多师兄,但他们都是对算法熟悉,对编译器的函数什么的不熟,所以我觉得能回答这问题的都是编程高手。哦,最后补充一下,我用的是cvf6.5,xp系统,那个C.txt的格式是这样的:
n
y
1
2
abc
    几个论坛里就这个有人回答了前两个帖子,其他论坛一个回复也没… 以后就在这混了。

回复列表 (共12个回复)

11 楼

呵呵,學FORTRAN并沒錯,不過您這題目已經超出FORTRAN的范疇了,這個題目重點是在MS系統的知識。

12 楼

你这句话让我警醒了一下,还是学好自己的专业知识靠谱

我来回复

您尚未登录,请登录后再回复。点此登录或注册