#对于c语言文件中,文件调用部分的内容不理解
请为我阐述以下问题:
1.字符串读取函数中,若遇到换行符或文件尾,字符串指针s中会写入文件的值吗,返回的空指针指的是返回一个新的指针p指向空指针还是s指向空指针。
2.格式化读/写函数的实例,不要模型要一个完整的片段
3.数据块读/写函数的实例,同上
c语言基础之文件调用函数的使用疑问
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 技术专家团-小桥流水 2023-11-13 19:55关注
(1)如果遇到换行符或者文件尾,s中是否有数据是根据具体情况来定的,比如
fscanf(fp,"%s %d",s,&a); 这个代码读取一个字符串和一个int类型,但是如果文件中只有一个字符串就遇到了文件结束符,那么s是可以正确读取字符串的,但是a没有正确读取。如果遇到的是回车符,s也是能正确读取到的,a是否能正确读取,取决于下一个数据是否是整数。
如果是fscanf(fp,"%s",s)这种,如果遇到换行符,s中读取的是空行(空行不是空指针)。如果遇到的是文件结束符,读取就失败,s中就没有读取文件中的内容。
fscanf不会返回空指针,s就是你传入的指针,指针不会改变!改变的只是s指针指向的内存中的值。
fscanf的返回值是正确读取元素的个数。
(2)fscanf和fprintf的使用如下所示。运行结果说明:
示例代码如下:
#include <stdio.h> int main() { char filename[100]={0},dstFile[100]={0}; FILE* fp = 0,*fp2=0; char s[100]={0}; int a,b; double c,d; int res; printf("请输入文件名:"); scanf("%s",filename); //读取需要读的文件名 printf("请输入要写入的文件名:"); scanf("%s",dstFile); fp = fopen(filename,"r"); //以读方式打开文件 fp2 = fopen(dstFile,"w"); //以写方式打开文件 while(!feof(fp)) { res = fscanf(fp,"%s %d %lf",s,&a,&c); //读取数据,res记录正确读取的数据个数 //将读取的内容写入目的文件 fprintf(fp2,"%s\t%d\t%lf\n",s,a,c); //将读取的数据写入目的文件,数据之间用Tab分隔 } fclose(fp); fclose(fp2); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
- ¥50 python写segy数据出错
- ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
- ¥30 3D多模态医疗数据集-视觉问答
- ¥20 设计一个二极管稳压值检测电路
- ¥15 内网办公电脑进行向日葵
- ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
- ¥50 WPF Lidgren.Network.Core2连接问题
- ¥15 soildworks装配体的尺寸问题
- ¥100 有偿寻云闪付SDK转URL技术