readFromFile()函数在程序开始时使用。
当用户写入一个文件名时,如果该文件存在,则程序应从该文件读取数据;如果具有该名称的文件不存在,则程序应保留用户输入的名称,并在关闭程序之前使用writeToFile()函数将其写入该文件。
问题在fp=fopen(a,“w”)中;函数writeTofile()不能识别a,所以它不知道用户在程序开始时输入了什么名字。2我的想法是既然我在两个文件中都有FILE *fp,它应该能识别“a”。3但是它不能,我不知道怎么做。
writeTofile()函数需要知道用户在readFromFile()中写入了什么文件名。
第一个
2条答案
按热度按时间r6l8ljro1#
在单独的函数中执行此部分:
然后将
a
传递给函数readFromFile
和函数writeToFile
。iszxjhcz2#
变量
a
位于readFromFile()
函数内部,因此从外部不可见。一种“解决方案”是使其成为全局的,即在所有函数之外定义它:
那么从任何函数内部都可以看到它,但是全局变量通常不是一个好主意,因为它们很混乱,使程序更难理解。
最好通过添加一个参数将文件名传递给函数:
然后将获取文件名的代码移到
main()
函数中,因为阅读文件名并不是特定于读取文件名的操作,所以不应该在文件内部执行:我跳过了一些细节,用“..."标记。