c语言file和fp未声明标识符,c语言定义文件指针时(FILE *fp)一定要写*fp吗、可以换成别的字母不...

C语言中定义文件指针时,如`FILE *fp`,`fp`是可以替换为其他符合标识符规则的字母的,但`*`作为文件指针类型的一部分不可改变。在使用多个文件指针时,应避免使用相同标识符,以防止混淆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c语言定义文件指针时(FILE *fp)一定要写*fp吗、可以换成别的字母不

关注:146  答案:4  mip版

解决时间 2021-01-29 07:27

e6cb1a03ad541b3098697807b7bf1798.png

提问者祗剩寂寞

2021-01-28 18:43

c语言定义文件指针时(FILE *fp)一定要写*fp吗、可以换成别的字母不

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家用二逼挥霍青春

2021-01-28 19:29

这个fp这个标识符是可以换的。。。只不过一般情况下,书上,老师都是这么干的。

但是*一定要留着,*是类型的一部分,是FILE*的一部分,表示文件指针,这个是不能变的。

如果你要写一个既要文件输入又要文件输出的功能,肯定要两个文件指针,不能两个都定义成fp啊,这个随便定义的。

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼雨落轻尘

2021-01-28 21:36

FILE*fp;

fp=fopen("filename","mode");

这是声明并打开一个文件的一般格式,换不太好吧?

e6cb1a03ad541b3098697807b7bf1798.png

2楼单剑走天涯

2021-01-28 20:35

可以啊,只要遵从 标识符的命名规则就可以,必须是 字母、数字以及下划线,开头的不能是数字,比如 FILE * tt,*ff,*xyz,*f3_r; 等等都可以。

e6cb1a03ad541b3098697807b7bf1798.png

3楼烟╰ゝ刺痛了眼伤了心

2021-01-28 20:11

printf("您选择的是:编号\n请选择您要查询的编号:\n");

scanf("%s",bianhao);

//本来你的程序是这样的

file *fp1=fopen("my.dat","r");//文件只能打开一次 不能重复打开

while(1)

{

if(fgets(buff,1024,fp1)==null)

break;

if(strcmp(buff,bianhao)==0)//这里比较字符串不用取地址

printf("%s",buff);

}

fclose(fp1);

//不过你的要求是 {第一个字符 等于输入的值  }那应该是这样

printf("您选择的是:编号\n请选择您要查询的编号:\n");

scanf("%c",bianhao);//这里的bianhao是char 不是 char[]

file *fp1=fopen("my.dat","r");

while(1)

{

if(fgets(buff,1024,fp1)==null)

break;

if(buff[0] == bianhao)

printf("%s",buff);

}

fclose(fp1);

//但是这样显然不符合逻辑 编号应该是多个字符 所以也可能是这样

printf("您选择的是:编号\n请选择您要查询的编号:\n");

scanf("%s",bianhao);//依然输入 char[]

file *fp1=fopen("my.dat","r");

while(1)

{

if(fgets(buff,1024,fp1)==null)

break;

if(strncmp(buff,bianhao, strlen(bianhao))==0)//这里的函数改成strncmp 具体意思去百度

printf("%s",buff);

}

fclose(fp1);

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值