c语言定义文件指针时(FILE *fp)一定要写*fp吗、可以换成别的字母不
关注:146 答案:4 mip版
解决时间 2021-01-29 07:27
提问者祗剩寂寞
2021-01-28 18:43
c语言定义文件指针时(FILE *fp)一定要写*fp吗、可以换成别的字母不
最佳答案
二级知识专家用二逼挥霍青春
2021-01-28 19:29
这个fp这个标识符是可以换的。。。只不过一般情况下,书上,老师都是这么干的。
但是*一定要留着,*是类型的一部分,是FILE*的一部分,表示文件指针,这个是不能变的。
如果你要写一个既要文件输入又要文件输出的功能,肯定要两个文件指针,不能两个都定义成fp啊,这个随便定义的。
全部回答
1楼雨落轻尘
2021-01-28 21:36
FILE*fp;
fp=fopen("filename","mode");
这是声明并打开一个文件的一般格式,换不太好吧?
2楼单剑走天涯
2021-01-28 20:35
可以啊,只要遵从 标识符的命名规则就可以,必须是 字母、数字以及下划线,开头的不能是数字,比如 FILE * tt,*ff,*xyz,*f3_r; 等等都可以。
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);
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看