所以在我的程序中,我提示用户选择是否退出保存信息写入文件或退出而不保存..当我使用exit()或返回时我的问题;打开的文件会自动关闭(已保存)..那么我怎么能阻止这种情况从另一个功能开始呢?
答案 0 :(得分:3)
这是我在C上制作记事本应用程序时遇到的同样问题。请勿在获得输入后立即写入文件。将所有用户输入存储在一个大数组char input[100]
中,然后
如果用户拒绝,请关闭该文件并return 0;
如果用户说“是”,fprintf(file,"%s",input);
,则关闭该文件。
你怀疑: @ZeyadIbrahim关于结构(非节点结构)的好处是它易于访问。如果用户说是将所有Info存储在本地数组变量中,然后将其内容放到结构中,这将使生活更轻松。所以不要直接写入结构,首先放入变量然后放入struct然后根据用户输入存储在文件中。
答案 1 :(得分:-1)
当您的应用启动时,请检查是否有.bak文件。 如果有,删除任何主文件,将bak文件复制到新的主文件。 如果没有bak文件,请通过将main重命名为bak并将bak复制到新的main来创建一个。
然后运行app,编写/追加/无论主文件。 如果您的用户想要保存新数据,请关闭主文件,然后删除bak文件。 如果您的用户不想保存,请删除主文件。