C语言【文件操作】

这篇具有很好参考价值的文章主要介绍了C语言【文件操作】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C语言【文件操作】

1、输入/输出流的定义。

​ C语言中,文件输入/输出以流的方式进行。

​ 读还是写,输入还是输出,是站在内存(程序)的角度来看的。从程序(内存)向 数据源(如文件、网络等)传递数据的过程叫做数据,读数据使用的路径叫做输入流,一般读数据的过程是一个解码的过程;从数据源(如文件、网络等)向 内存(程序)传递数据的过程叫做数据,写数据使用的路径叫做输出流,一般写数据的过程是一个编码的过程。

​ 编码和解码使用的字符集不一致时会出现乱码。

2、标准输入输出(一般指从键盘输入,从控制台输出)
scanf(...) 和 printf(...) 略
// getchar 用于从标准输入流(通常是键盘)读取一个字符。以下是其函数定义:
int getchar(void);	// 返回一个数值(读取的字符的ASCII码),用变量接收处理

// putchar 用于将一个字符写入到标准输出流(通常是控制台)。以下是其函数定义:
int putchar(int character);	// 返回一个整数值(写入字符的ASCII码)。参数为写入字符。
// gets 用于从标准输入流读取一个字符串。
char *gets(char *str);	// 返回值和参数都是读取到的那个字符串。

// puts 用于将参数输出到控制台。
int puts(const char *str);	// 返回成功输出的字符个数。参数为要输出的字符串。
// 有些函数主要作用是操作文件的(比如从文件中读数据),改变一下参数,也可成为标准输入输出(比如从控制台中拿数据),比如下面这个函数:
fgets(指针, 长度, stdin);	// 第一个参数存数据,长度,stdin指定为操作对象为控制台。
3、文件读写

​ 以下的文件操作函数都在<stdio.h>中

/** 
*		打开文件
*	返回一个操作文件的指针。	
*	第一个参数为要操作的文件路径及文件名。
*		相对路径和绝对路径知识略。win路径分隔符为/或\\(转义),Unix为/,当前目录下可以加./也可不加。
*	第二个参数为模式。如"r" ----- 这个模式是个字符串。
*		r只读。w清空原文件并写入。a追加。b二进制。+为省略r和w。(b和+不能单独使用)
*		组合有:rb、wb、ab、r+、w+、a+、rb+、r+b、wb+、w+b、ab+、a+b
*		r/r+不创建新文件,文件不存在时不能正确读取; 写文件时,如果目录不存在则报错
*		使用w时,未关闭流继续写则为追加。
*/
FILE *fopen(const char *filename, const char *mode);	
/* 
	写文件
*/

// 第一种。一次写一个字符。
int fputc(int character, FILE *stream);	// 成功返回写入字符的ASCII码;失败返回EOF,即-1

// 第二种。写入字符串。第一个参数为要写入的字符串;第二个参数为文件指针。
int fputs(const char *str, FILE *stream); // 成功返回写入的字符个数;失败返回EOF,即-1

// 第三种。第一个参数为文件指针;第二个参数为带占位符的字符串;...为可变参。
int fprintf(FILE *stream, const char *format, ...);	//成功返回写入字符个数;失败返回EOF,即-1
/*
	读文件
*/

// 第一种。读一个字符。
int fgetc(FILE *stream);	// 返回读取字符的ASCII码。失败返回EOF,即-1
// 第二种。读一个字符串。之前介绍过它的读取控制台的数据。第二个参数为个数;第三个参数为文件指针或指定控制台读
char *fgets(char *str, int num, FILE *stream);	// 返回值和第一个参数都是读取到的字符串。失败返回NULL。
// 第三种。
int fscanf(FILE *stream, const char *format, ...);
fscanf(file, "%s %s %d", msg1, msg2, &num);	// 读取到后面的变量中。占位符之间的空格表示文件中的空格或换行。
union {
    int a;
    int b;
} *p, u;
p = &u;	// 对于自定义数据类型来说,下面要使用指针时,必须这样指向一下。
const int *p;	// p可改变指向,*p不可改变
int const *p;	// p可改变指向,*p不可改变
int * const p;	// p不可改变指向,*p可改变
cosnt int * const p;	// p不可改变指向,*p也不可改变
// 简单来说,p前的const把p给锁定了,*前的const把*p给锁定了,都有则都锁定。
// int 和 const 紧挨着时,他俩可以交换位置。

​ 在vscode中,让编译出的可执行文件在控制台输出且编码方式改为GBK编码的方式为:task.json文件中的args属性中添加:"-fexec-charset=gbk";在lauch.json文件中修改"configurations"属性第一个数组的“externalconsole”属性改为true。

​ getchar()会吃掉'\n',他就相当于scanf("%c", 变量); 所以有时需要使用两个getchar()才可以使控制台输入完后停留。

​ scanf("%d\n", 变量); 它不吃回车或换行是因为它不是%c。如果它在getchar()前,它前面如果还有输入,输入中如果按了回车它也不吃,它后面的getchar()也吃不掉,回车就被消耗掉了。

#include<stdlib.h>

int main(){
    system("这里面可以填写cmd的命令");
    return 0;
}

case中的break是跳出switch;if中的break是跳出这层循环。

注意下面代码中的知识点文章来源地址https://www.toymoban.com/news/detail-747200.html

char *p = "hello";	 // 这个hello是个字面量,不可更改
*(p+2) = 'a';   	//报错

到了这里,关于C语言【文件操作】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高阶C语言|C语言文件管理--输入输出流

    我们前面已经介绍了结构体,也学习了通讯录,存在一个问题就是,每次通讯录程序退出,之前写好的信息都没了,下次进入通讯录,又得重新输入信息,这样的通讯录使用起来就很难受。那么怎样可以使数据保留下来,这里就涉及到了数据持久化的问题,数据持久化的方法

    2024年02月15日
    浏览(44)
  • Python文件操作与输入输出:从基础到高级应用

    Python作为一门功能强大且易于学习的编程语言,在文件操作和输入输出方面提供了丰富的功能和工具。本文将从基础知识开始,逐步深入探讨Python中的文件操作和输入输出技术,帮助读者在编程过程中更好地利用这些功能。 在Python中,文件操作是一项重要的任务。我们首先要

    2024年02月12日
    浏览(36)
  • C++文件操作基础 读写文本、二进制文件 输入输出流 文件位置指针以及随机存取 文件缓冲区以及流状态

    文本文件一般以行的形式组织数据。 包含头文件: #include fstream 类: ofstream(output file stream) ofstream 打开文件的模式(方式):类内open()成员函数参数2.参数1是文件存储/创建路径 例如:fout.open(filename,ios::app); 对于 ofstream,不管用哪种模式打开文件,如果文件不存在,都会创

    2024年01月25日
    浏览(53)
  • Linux :: 文件内容操作【5】:echo 指令 与 输入重定向、输出重定向、追加重定向在文件内容写入中的简单用法!

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 说明:此处结合 「echo 指令」 提前引入 「重定向」 及 「管道」 的简单用法,深入的 「重定向」

    2024年02月01日
    浏览(56)
  • 从字符输入到输出——C语言中的字符输入输出

    字符是C语言中的一个重要数据类型,而字符的输入输出又是程序中不可缺少的一部分。本文将详细介绍C语言中字符输入输出,包括字符输入输出函数的使用、样例程序解析、以及相关的注意事项。 在C语言中,scanf_s函数是一个常用的字符输入函数。其格式如下: 这里的%c表

    2024年02月05日
    浏览(44)
  • 操作系统5——输入输出系统

    本系列博客重点在深圳大学操作系统课程的核心内容梳理,参考书目《计算机操作系统》(有问题欢迎在评论区讨论指出,或直接私信联系我)。 梗概 本篇博客主要介绍操作系统第六章输入输出系统的相关知识。 目录 一、I/O(输入输出)系统 1.概述 2.I/O设备和设备控制器

    2024年02月11日
    浏览(47)
  • R语言 | 输入与输出

    目录 一、认识文件夹 1.1 getwd()函数 1.2 setwd()函数 1.3 file.path()函数 1.4 dir()函数 1.5 list.files()函数 1.6 file.exists()函数 1.7 file.rename()函数 1.8 file.create()函数 1.9 file.copy()函数 ​1.10 file.remove()函数 二、数据输出:cat()函数 三、读取数据:scan()函数 四、输出数据:write()函数 五、数据

    2024年02月03日
    浏览(34)
  • 2.C语言——输入输出

    1.输入:getchar() 字面意思, 接收单个字符 ,使用方法 2.输出:putchar() 1.输入:scanf() 格式: scanf(“格式控制字符串”,地址列表); 如果格式符之间添加了空格,那么按照规则, 会忽略掉全部的空白符 直到遇到下一个不是空白符的字符 格式说明符 意义 %d 输入有符号的十进制数

    2024年02月19日
    浏览(39)
  • 6、C语言:输入与输出

    使用输入/输出库函数的每个源程序文件必须包含: 许多程序只从一个输入流中读取数据,并且只向一个输出流中输出数据。对于这样的程序,只需要使用函数getchar、putchar和printf实现输入/输出即可。 格式化输出——printf函数 函数printf在输出格式format的控制下,将其参数进行

    2024年02月01日
    浏览(47)
  • C语言——数据的输入输出

    C语言中没有专门的输入输出语句,C语言的输入输出是靠库函数来实现的。 格式: printf(“格式控制字符串”,输出列表); 功能: 按格式控制字符串规定的格式,向输出设备(一般为显示器)输出,输出列表中各输出项的值。 如: 格式控制:由双引号括起来的字符串,

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包