C语言练习 文件操作_c语言文件操作练习-程序员宅基地

技术标签: C语言练习  c语言  文件操作  

在C程序中使用文件,需要完成以下操作。
(1)声明一个FILE*类型的指针变量,程序通过改变量对所指向的文件进行操作。
(2)通过调用fopen函数将此变量和某个实际文件相联系,这一操作称为打开文件。打开一个文件需要指定一个文件名,并且指定该文件是用于输出还是输入(读还是写)。
(3)调用适当的文件处理函数完成必要的I /O操作。这些函数的原型声明包含在头文件stdio.h中。
(4)通过调用fclose函数声明文件操作结束,这一操作称为关闭文件,他断开了FILE*类型的变量与实际文件间的联系。

示例代码:

#include<stdio.h>
#include<stdlib.h>

int main() {
	FILE *fp;
	int i = 0;
	char s;

	fp = fopen("d:\\date.txt", "r");
	while(!feof(fp)) {
		fscanf(fp, "%c", &s);
		printf("%c", s);
	}

	fclose(fp);

	system("pause");
	return 0;
}

示例结果:



打开文件的使用方式
“r”——只读,以只读方式打开已存在文件。
“w”——只写,以只写方式新建文本文件,若存在同名文件则刷新已有文件。
“a”——追加,以只读方式打开文已存在本文件,数据追加到末尾。
“r+”——读写,为读/写方式打开已存在文本文件。
“w+”——读写,以读/写方式新建文本文件,若存在同名文件则刷新已有文件。
“a+”——读写,以读/写方式打开已存在文本文件,数据追加到末尾。



格式化的数据读/写
(1)格式化输入函数
Int fscanf(FILE *fp, char *format, 地址列表)
功能:按照格式控制字符串format所给定的输入格式,把从fp所指向的文件当期那读写位置起读入的数据,按地址列表存入指定的存储单元。从文件读入数据后,文件读写位置向后做相应的移动。
(2)格式化输出函数
Int fprintf(FILE *fp, char *format, 输出表)
功能:按照格式控制字符串format所给定的输出格式,从fp所指向文件的当前读写位置起,把输出表中各表达式值输出文件。
    fprintf函数、fscanf函数与printf函数、scanf函数作用相仿,都是格式化读写函数,知识fprintf和fscanf函数的读写对象不是终端而是磁盘文件。


示例代码:

/*从键盘上输入10个学生的C语言成绩,以格式%5d写到文本文件score.txt中。*/
#include<stdio.h>
#include<stdlib.h>

int main() {
	FILE *fp1;
	int i, score;

	fp1 = fopen("d:\\score.txt", "w");
	for(i = 0; i < 10; i++) {
		scanf("%d", &score);
		fprintf(fp1, "%5d", score);
	}
	fclose(fp1);

	system("pause");
	return 0;
}

示例输入:



示例结果:

在D盘中找到并打开score.txt文本文件。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hehe5229/article/details/60880314

智能推荐

html按钮按下效果_您应该在网站中尝试的8种惊人的HTML按钮悬停效果,让您的网站令人难忘...-程序员宅基地

文章浏览阅读403次。HTML按钮悬停效果简介按钮是每个页面,Web应用程序或移动应用程序中经常使用的基本HTML元素。HTML按钮是布局中非常重要的元素,因为在很多情况下,它是用户在呼吁采取行动并说服单击时必须注意到的元素。前端开发人员和设计人员经常尝试以任何不错的方式突出显示按钮,尤其是当用户与它们交互时,例如悬停或聚焦时。因此,今天我决定向您展示8种出色的HTML按钮悬停效果,您可以在项目中使用它们,并使用户和客..._按钮的悬停和按下效果设计

VMware Pro16 安装MacOS 11/12教程_vm16pro 安装 macos11-程序员宅基地

文章浏览阅读6.8k次,点赞2次,收藏27次。本文引用了诸多教程, 如有侵犯, 请联系以删除写作日期: 2022年2月22日1. 原料准备VMware Pro实测VMware Pro16.0.0最高只有MacOS11.1, VMware Pro16.2.2有MacOS12和MacOS13, 需要配合unlocker使用VMware Pro的安装和NAT网络配置请自行百度实测在VMware Pro16.0.0上选择MacOS11.1可以按照12.2unlocker用于给VMware Pro添加MacOS的选项unlocker下载地址._vm16pro 安装 macos11

Java原来可以这么玩!CV视频合成处理,视频前后拼接,画面合并_java怎么做视频合成-程序员宅基地

文章浏览阅读1.3k次,点赞26次,收藏19次。本章内容教会你如何用java代码实现 两个视频的画面合并 或者前后拼接。原理是使用了javacv开源jar包,代码经过反复修改,已经实现我能想到的最优最快的实现,如果你有更好更快的实现,欢迎评论区留言!!!先展示一下效果吧!!!两个视频前后拼接两个视频画面合并。_java怎么做视频合成

Windows iPhone VMware [转]-程序员宅基地

文章浏览阅读256次。 本文在Windows Xp + VMware Workstation 7.0 + MAC OS X Snow Leopard 10.6 环境下安装iPhone SDK 3.1.2成功! -------------------------------------- 安装条件: 硬件:一台拥有支持虚拟技术的64位双核处理器和2GB以上内存的PC。 本人采用笔记本:DELL D630 4G内存 注意:..._iphone vmware

【Unity3D入门教程】Unity3D界面介绍及游戏对象基本操作_u3d2017页面操作-程序员宅基地

文章浏览阅读4w次,点赞30次,收藏95次。本文介绍了Unity3D界面及游戏对象基本操作。_u3d2017页面操作

vscode 如何格式化vue(template)html代码 , 保持标签属性不换行_vue html标签不要每个属性换行-程序员宅基地

文章浏览阅读2.3k次。百度看了好多文章,但是设置完了,还是会换行今天终于自己摸索出来不会换行1.vscode->文件->首选项->设置2.选择工作区->找到settings.json(滚动找到settings.json)3.设置如下,就ok了"settings": { "vetur.format.defaultFormatter.html": "js-beautify-html", "vetur.format.defaultFormatterOptions":{ "js-bea_vue html标签不要每个属性换行

随便推点

使用Pycharm给Python程序传递参数_pycharm配置pytest运行程序 传递-m参数-程序员宅基地

文章浏览阅读8.9w次,点赞36次,收藏86次。Pycharm 的设置--参数设置程序运行时,如果需要输入参数,如下图中代码:生成exe后,程序运行时格式为:这种情况在调试程序时,如果只是在Pycharm环境中简单执行“Run”菜单下的“Run”命令,会出现以下错误,提示需要输入参数。为了解决这个问题,我们需要点击“Run”菜单下的"Edit Configurations..."命令_pycharm配置pytest运行程序 传递-m参数

解决AttributeError AttributeError: 'NoneType' object has no attribute 'filename'_inmemoryuploadedfile' object has no attribute 'sav-程序员宅基地

文章浏览阅读1w次。原因忘记上传文件 表单需要加属性enctype="multipart/form-data"否则报错!AttributeError AttributeError: 'NoneType' object has no attribute 'filename'enctype="multipart/form-data是设置表单的MIME编码。默认情况,这个编码格式是applicatio..._inmemoryuploadedfile' object has no attribute 'save

小程序转义html标签,wxDiscode-微信小程序特殊字符转义符转化工具类-程序员宅基地

文章浏览阅读724次。问题在大部分html或者其它富文本在保存到后台中,为了安全起见需要将一些特殊字符进行转义但是,请求回来的信息中包涵着这些转义过后的字符,而微信小程序是不能够直接进行反转义成为html特殊字符,所以需要将字符串特殊字符替换后才能恢复作用用于转义html中的特殊字符解析类型HTML 支持的数学符号HTML 支持的希腊字母HTML 支持的其他实体代码很简单,复制粘贴太难,所以提供给大家以便使用,欢迎补充..._微信小程序开发复制特殊字符

windows环境下动态库的生成和使用 (.dll文件) ._windows 动态库生成与使用-程序员宅基地

文章浏览阅读5k次。前面说了windows环境下静态库的生成和使用方法,现在来看一看windows环境下动态库的生成和使用方法。这次的代码来自《windows核心编程 第5版》中第19章“DLL基础”。 首先使用VS2008构建一个空工程,工程类型是“Win32 dynamic link library”。我们来看构建DLL模块的代码:/*****************************_windows 动态库生成与使用

linux双括号语法及双方括号语法_linux 判断数字是否相等 双括号-程序员宅基地

文章浏览阅读2k次。一般我们使用如下语法if [ expression ] theniflinux中提供了高级的双括号语法。在之前,如果要判断数字大小,大于号需要转义,否则会被认为重定向举例:[root@localhost shell]# cat test1.sh #!/bin/bashnum=10if [ num &gt; 8 ];then echo "10&gt;8"fi程序解释:..._linux 判断数字是否相等 双括号

springboot集成测试时@RunWith和@SpringBootTest爆红不能测试_springboot 聚合工程 @springboottest无法使用-程序员宅基地

文章浏览阅读4.8k次,点赞7次,收藏11次。场景:由于程序中从redis中获取到的值不正确,需要一个测试类测试下根据key从redis中获取到的值具体是什么。所以有了下面的代码 import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.fact..._springboot 聚合工程 @springboottest无法使用

推荐文章

热门文章

相关标签