IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言文件的简单操作 -> 正文阅读

[C++知识库]c语言文件的简单操作

#include <stdio.h>
#include <stdlib.h>   //exit(0),退出程序
/// ?<文件的简单操作>?    <?要点 ?>
///  #1 <fopen与fopen_s> 
/// 【fopen_s比fopen 多了溢出检测,更安全一些】
/// fp=fopen("文件名","打开方式");
///  fopen 打开文件成功则返回文件指针赋值给fp,失败的话返回空指针
/// errno_t err;
/// err=fopen_s(指针地址, "文件名", "打开方式");
///  fopen_s 打开文件成功返回0给errno_t类型的变量,失败的话则返回非零值
/// 
///  #2  <初始化字符串数组>
/// char fname[50]={0};
/// 在定义字符串数组时将其定义为0,消除字符串没有零终止符的警告。
/// 
///  #3  <文件的读与写>
///   EOF(End Of File)【#define EOF -1】是《文本文件》结束的标志, 在文本文件中字符以ASCII码表示,不可能出现-1.
///   在向文件输入数据时,是先将数据输出到缓冲区,待缓冲区满后再正式输出文件,所以先fclose关闭文件先把缓冲区的文件输出到磁盘文件。
/// 

int main()
{
	FILE* fp;
	errno_t err;
	char ch, fname[50] = { 0 };   //初始化字符串数组为零,消除字符串没有零终止符的警告
	int a;
	printf("请输入要打开或要创建的文件名");
	scanf_s("%s",fname,sizeof(fname));
	if ((err = fopen_s(&fp, fname, "a+") == 0))
		printf("打开文件%s成功", fname);
	else
	{
		printf("打开文件%s失败", fname);
		exit(0);
	}
	//在这里写入字符到文件fname
	printf("请输入字符");
	
	/*!!!!!!在这里添加一个getchar接收回车键,防止下一步的while直接终止!!!!!*/
	a=getchar();         
    
	ch = getchar();     /*从键盘上键入一个字符赋值给ch*/
	while (ch != '\n')     //接收到回车键后终止循环
	{
		fputc(ch, fp);
		ch = getchar();
	}

	fclose(fp);             //关闭文件,即指针不再指向该文件
	                        //写文件完成后,要关闭文件才能读文件

	//重新打开文件
	printf("请输入要打开或要创建的文件名");
	scanf_s("%s", fname, sizeof(fname));
	if ((err = fopen_s(&fp, fname, "a+") == 0))
		printf("打开文件%s成功", fname);
	else
	{
		printf("打开文件%s失败", fname);
		exit(0);
	}

	//在这里从指定文件中读取字符
	ch = fgetc(fp);
	/*字符不是文件结束的标志,则把字符显示在屏幕上,继续读取下一个字符*/
	while (ch != EOF)
	{
		putchar(ch);
		ch = fgetc(fp);
	}
	fclose(fp);


	return 0;
}

新手上路

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 13:48:12  更:2022-01-08 13:48:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:29:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码