Fortran OverWrite

时间:2014-03-28 18:09:48

标签: fortran overwrite

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

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

现在," Deneme.txt"中只有2行。文件,看起来像这样;

john mayer 110
hugh jackman 111

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

john mayer 110
dennis lui 510

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

1 个答案:

答案 0 :(得分:2)

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

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