Fortran 覆盖

Posted

技术标签:

【中文标题】Fortran 覆盖【英文标题】:Fortran OverWrite 【发布时间】:2014-05-08 08:24:54 【问题描述】:

我正在尝试编写一个读取姓名、姓氏和数字的 fortran 代码,然后将它们写入现有文件。

代码如下所示:http://pastebin.com/SV8erDND

现在,“Deneme.txt”文件中只有两行,如下所示;

john mayer 110
hugh jackman 111

每当我尝试通过编译器向文件添加另一个名称时,它都会覆盖第二行。例如,如果我输入 dennis lui 510,文件现在看起来像这样;

john mayer 110
dennis lui 510

如何防止它被覆盖?此外,似乎没有循环。添加名字/姓氏/号码后,我希望它回到第一步并要求另一个名字/姓氏/号码。

【问题讨论】:

【参考方案1】:

首先从文件中读取一行,然后要求用户输入名称。如果它与您刚刚阅读的一个名称匹配,则程序会要求另一个名称。如果是新名称,它将从上次读取停止的位置开始写入,即第二行。

你检查一个名字是否已经存在没有多大意义,因为你只检查名字。应该做的是读取整个文件,将数据存储在哈希表中,然后在末尾附加用户输入的在哈希中找不到的任何名称/数字。您是否正在尝试实现某种数据库?如果是这样,那么我认为 Fortran 不是获得简单/快速解决方案的最佳选择,也许您应该选择 perl 或 python 之类的语言。

【讨论】:

不是反过来吗?如果名称匹配,它应该说“它已经存在”,如果不存在,那么我希望它添加到第三行、第四行等。好吧,我这个学期正在学习 Fortran,只是想看看是否我可以做这样的事情。 “询问姓名” “询问姓氏” 如果他们已经在文件中,它应该要求用户再次重新输入。如果没有,“问号”然后按顺序添加信息(第2行,第3行,第4行,第5行) 不同的人有相同的名字并不罕见。

以上是关于Fortran 覆盖的主要内容,如果未能解决你的问题,请参考以下文章

在 Fortran 中写入现有文件而不覆盖

如何用fortran 在文本文件最后写入内容

怎么在win10安装fortran

fortran关于数组内部函数的问题

什么是fortran语言之fortran语言入门

fortran的数组定义