[英]sharing opened text file in different functions in C
指针不是我在C语言中强大的能力。 因此,我可能需要你们的帮助:)。 我想在不同的函数中使用文本文件,但只能在A()函数中打开它。
#include<stdio.h>
#include<stdlib.h>
void B(){
// I want to work with FILE.TXT in this function without openining it here.
}
void A() {
FILE *fr;
fr = fopen("FILE.TXT","r");
fclose(fr);
}
int main() {
char c;
while(c!='*') {
c = getchar();
if(c=='A') A();
if(c=='B') B();
}
return 0;
}
感谢大伙们
只要将FILE*
作为参数传递给需要执行I / O的函数即可。
int main()
{
FILE *fp = fopen("FILE.TXT", "r");
// don't forget error checking
A(fp);
fclose(fp);
}
void A(FILE *fp)
{
// whatever
}
您只需将它作为FILE指针参数传递给函数B,如下所示:
无效B(FILE * const f){
//用f做东西
}
要在函数中使用文件,您需要在该函数中具有FILE*
对象。 有几种不同的选择,这些是最明显的选择:
fr
,并将其传递给A()
和B()
fr
为全局变量,在A()
打开它(确保不要关闭它!),在B()中使用它。 我更喜欢选项1。使用全局变量通常会使代码的可读性降低。
还要注意,您的代码允许B()在A之前调用,这将在打开文件之前尝试使用该文件。 假设您未实现选项1,则您的代码将需要确保不会发生(或以某种方式处理)。
绝对不可能在A中打开和关闭文件,然后在B中使用该文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.