当前位置: 首页 > news >正文

马云的网站是谁建设的百度广告投放

马云的网站是谁建设的,百度广告投放,网站开发实施方案,做网站鼎盛超详细讲解文件函数!!!!字符输入/输出函数fgetcfputc文本行输入/输出函数fgetsfputs格式化输入/输出函数fscanffprintf二进制输入/输出函数freadfwrite打开/关闭文件函数fopenfclose字符输入/输出函数 fgetc fgetc函数可以从指定…

超详细讲解文件函数!!!!

  • 字符输入/输出函数
    • fgetc
    • fputc
  • 文本行输入/输出函数
    • fgets
    • fputs
  • 格式化输入/输出函数
    • fscanf
    • fprintf
  • 二进制输入/输出函数
    • fread
    • fwrite
  • 打开/关闭文件函数
    • fopen
    • fclose

字符输入/输出函数

fgetc

在这里插入图片描述
fgetc函数可以从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了要在上面执行操作的流;
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
下面演示了 fgetc函数的用法:

int main ()
{FILE *fp;int c;int n = 0;fp = fopen("file.txt","r");if(fp == NULL) {perror("打开文件时发生错误");return(-1);}do{c = fgetc(fp);if( feof(fp) ){break ;}printf("%c", c);}while(1);fclose(fp);return(0);
}

假设我们有一个文本文件 file.txt,它的内容为:We are in 2019
编译并运行上面的程序,这将产生以下结果:We are in 2019

fputc

在这里插入图片描述
fputc函数把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
char – 这是要被写入的字符。该字符以其对应的 int 值进行传递。(写入文件的字符是ASCII值
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符的流。
下面演示了 fputc函数的用法:

#include <stdio.h>
int main ()
{FILE *fp;int ch;fp = fopen("file.txt", "w+");for( ch = 33 ; ch <= 100; ch++ ){fputc(ch, fp);}fclose(fp);return(0);
}

让我们编译并运行上面的程序,这将在当前目录中创建文件 file.txt,它的内容如下:

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd
//一堆二进制码,文件中无法看明白。

文本行输入/输出函数

fgets

在这里插入图片描述
从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (num-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
str – 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
num – 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。

如果成功,该函数返回相同的 str 参数。
如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个NULL。如果发生错误,返回一个NULL。

下面的演示了 fgets函数的用法:

int main()
{FILE *fp;char str[60];fp = fopen("file.txt" , "r");if(fp == NULL) {perror("打开文件时发生错误");return(-1);}if( fgets (str, 60, fp)!=NULL ) {/* 向标准输出 stdout 写入内容 */puts(str);}fclose(fp);return(0);
}

假设我们有一个文本文件 file.txt,它的内容如下:
We are in 2023
编译并运行上面的程序,这将产生以下结果:
We are in 2023

fputs

在这里插入图片描述
把字符串写入到指定的流 stream 中,但不包括空字符。
str – 这是一个数组,包含了要写入的以空字符终止的字符序列。
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符串的流。

下面的演示了 fputs函数的用法:

#include <stdio.h>int main ()
{FILE *fp;fp = fopen("file.txt", "w+");fputs("这是 C 语言。", fp);fputs("这是一种系统程序设计语言。", fp);fclose(fp);return(0);
}

编译并运行上面的程序,这将创建文件 file.txt,它的内容如下:
这是 C 语言。这是一种系统程序设计语言。

格式化输入/输出函数

fscanf

在这里插入图片描述
从流 stream 读取格式化输入。
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
format – 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符,后面的省略号表明了他可以有多个变量,甚至到无穷个变量。是可变参数列表

format 说明符形式为 [=%[*][width][modifiers]type=],具体讲解如下:

参数描述
*这是一个可选的星号,表示数据是从流 stream 中读取的,但是可以被忽视,即它不存储在对应的参数中
width这指定了在当前读取操作中读取的最大字符数。
modifiers为对应的附加参数所指向的数据指定一个不同于整型(针对 d、i 和 n)、无符号整型(针对 o、u 和 x)或浮点型(针对 e、f 和 g)的大小: h :短整型(针对 d、i 和 n),或无符号短整型(针对 o、u 和 x) l :长整型(针对 d、i 和 n),或无符号长整型(针对 o、u 和 x),或双精度型(针对 e、f 和 g) L :长双精度型(针对 e、f 和 g)
type一个字符,指定了要被读取的数据类型以及数据读取方式。具体参见下一个表格。

在这里插入图片描述
fscanf 类型说明符:
在这里插入图片描述
附加参数,根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。
下面演示了 fscanf函数的用法:

#include <stdio.h>
#include <stdlib.h>int main()
{char str1[10], str2[10], str3[10];int year;FILE * fp;fp = fopen ("file.txt", "w+");fputs("We are in 2014", fp);rewind(fp);fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);printf("Read String1 |%s|\n", str1 );printf("Read String2 |%s|\n", str2 );printf("Read String3 |%s|\n", str3 );printf("Read Integer |%d|\n", year );fclose(fp);return(0);
}

编译并运行上面的程序,这将产生以下结果:

Read String1 |We|
Read String2 |are|
Read String3 |in|
Read Integer |2014|

fprintf

在这里插入图片描述
发送格式化输出到流 stream 中。
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
format – 这是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。

format 标签属性是 %[flags][width][.precision][length]specifier,具体讲解如下:

specifier(说明符)输出
c字符
d 或 i有符号十进制整数
e使用 e 字符的科学科学记数法(尾数和指数)
E使用 E 字符的科学科学记数法(尾数和指数)
f十进制浮点数
g自动选择 %e 或 %f 中合适的表示法
G自动选择 %E 或 %f 中合适的表示法
o有符号八进制
s字符的字符串
u无符号十进制整数
x无符号十六进制整数
X无符号十六进制整数(大写字母)
p指针地址
n无输出
%字符

在这里插入图片描述
在这里插入图片描述

width(宽度)描述
number要输出的字符的最小数目。如果输出的值短于该数,结果会用空格填充。如果输出的值长于该数,结果不会被截断。
*宽度在 format 字符串中未指定,但是会作为附加整数值参数放置于要被格式化的参数之前。
precision(精度)描述
.number对于整数说明符(d、i、o、u、x、X):precision 指定了要写入的数字的最小位数。如果写入的值短于该数,结果会用前导零来填充。如果写入的值长于该数,结果不会被截断。精度为 0 意味着不写入任何字符。1、对于 e、E 和 f 说明符:要在小数点后输出的小数位数。2、对于 g 和 G 说明符:要输出的最大有效位数。3、对于 s: 要输出的最大字符数。默认情况下,所有字符都会被输出,直到遇到末尾的空字符。4、对于 c 类型:没有任何影响。当未指定任何精度时,默认为 1。如果指定时不带有一个显式值,则假定为 0。
.*精度在 format 字符串中未指定,但是会作为附加整数值参数放置于要被格式化的参数之前。
length(长度)描述
h参数被解释为短整型或无符号短整型(仅适用于整数说明符:i、d、o、u、x 和 X)。
I参数被解释为长整型或无符号长整型,适用于整数说明符(i、d、o、u、x 和 X)及说明符 c(表示一个宽字符)和 s(表示宽字符字符串)。
L参数被解释为长双精度型(仅适用于浮点数说明符:e、E、f、g 和 G)。

附加参数 – 根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。

返回值

如果成功,则返回写入的字符总数,否则返回一个负数。

下面的演示了 fprintf函数的用法:

#include <stdio.h>
#include <stdlib.h>
int main()
{FILE * fp;fp = fopen ("file.txt", "w+");fprintf(fp, "%s %s %s %d", "My", "Hero", "is", 2023);fclose(fp);return(0);
}

编译并运行上面的程序,这将创建文件 file.txt,它的内容如下:
My Hero is 2023。

二进制输入/输出函数

fread

在这里插入图片描述
从给定流 stream 读取数据到 ptr 所指向的数组中。
ptr – 这是指向带有最小尺寸 size*nmemb 字节的内存块的指针。
size – 这是要读取的每个元素的大小,以字节为单位。
count – 这是元素的个数,每个元素的大小为 size 字节。
stream – 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。

下面演示了 fread函数的用法:

int main()
{FILE *fp;char c[] = "This is an apple";char buffer[20];fp = fopen("file.txt", "w+");fwrite(c, strlen(c) + 1, 1, fp);fseek(fp, 0, SEEK_SET);fread(buffer, strlen(c)+1, 1, fp);printf("%s\n", buffer);fclose(fp);return(0);
}

编译并运行上面的程序,将创建一个文件 file.txt,然后写入内容 This is an apple。

fwrite

在这里插入图片描述
把 ptr 所指向的数组中的数据写入到给定流 stream 中。
ptr – 这是指向要被写入的元素数组的指针。
size – 这是要被写入的每个元素的大小,以字节为单位。
count – 这是元素的个数,每个元素的大小为 size 字节。
stream – 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。

下面演示了 fwrite函数的用法:

int main ()
{FILE *fp;char str[] = "This is an apple";fp = fopen( "file.txt" , "w" );fwrite(str, sizeof(str) , 1, fp );fclose(fp);return(0);
}

编译并运行上面的程序,这将创建一个文件 file.txt,它的内容如下:This is an apple

打开/关闭文件函数

fopen

使用给定的模式 mode 打开 filename 所指向的文件。在这里插入图片描述
在这里插入图片描述

文件使用方式含义如果指定文件不存在
“r”(只读)为了输入数据,打开一个已经存在的 文本文件出错
“w”(只写)为了输出数据,打开一个文本文件建立一个新的文件
“a”(追加)向文本文件尾添加数据建立一个新的文件
“rb”(只读)为了输入数据,打开一个二进制文件出错
“rb”(只读)为了输入数据,打开一个二进制文件出错
“wb”(只写)为了输出数据,打开一个二进制文件建立一个新的文件
“ab”(追加)向一个二进制文件尾添加数据出错
“r+”(读写)为了读和写,打开一个文本文件出错
“w+”(读写)为了读和写,建议一个新的文件建立一个新的文件
“a+”(读写)打开一个文件,在文件尾进行读写建立一个新的文件
“rb+”(读写)为了读和写打开一个二进制文件出错
“wb+”(读写)为了读和写,新建一个新的二进制文件建立一个新的文件
“ab+”(读写)打开一个二进制文件,在文件尾进行读和写建立一个新的文件

该函数返回一个 FILE 指针。否则返回 NULL,且设置全局变量 errno 来标识错误。

#include <stdio.h>
#include <stdlib.h>int main()
{FILE * fp;fp = fopen ("file.txt", "w+");fprintf(fp, "%s %s %s %d", "We", "are", "in", 2023);fclose(fp);return(0);
}

运行上述代码,则收获一个带有以下内容的文件 file.txt:We are in 2023

fclose

在这里插入图片描述
关闭流 stream,刷新所有的缓冲区
流成功关闭,则该方法返回零。如果失败,则返回 EOF。

/* fclose example */
#include <stdio.h>
int main ()
{FILE * pFile;pFile = fopen ("myfile.txt","wt");fprintf (pFile, "fclose example");fclose (pFile);return 0;
}

而正因为fclose这个特性,因此我们每次打开文件输入数据后,都必须手动使用fclose关闭文件,否则我们写的数据很有可能会滞留在缓冲区而没有真正存入到硬盘中,当程序结束后就会造成数据丢失。
我们平常使用Word等办公软件的时候本质上就是如此,若不进行保存或者关闭文档后不执行保存操作,我们的数据就会在缓冲区然后丢失而非存储到硬盘之中。
在这里插入图片描述

那么,今天的文件函数的使用详解的相关内容我就讲述完啦,因为个人能力有限,文章难免会出现纰漏,届时有错误可以私信发给我以及时更正,谢谢大家!
在这里插入图片描述

http://www.dinnco.com/news/24874.html

相关文章:

  • 网站开发十大公司app推广刷量
  • 网站的折线图怎么做自媒体推广
  • 电商网站变化百度第三季度财报2022
  • 上海网站制作网站开发品牌整合营销推广
  • 广元网站建设价格简单网页设计模板html
  • 和17做网店一样的货源网站搜图片百度识图
  • 商标网注册查询官网seo页面如何优化
  • 怎么做旅游网站seo服务合同
  • 公司关于网站建设的通知新闻发布平台有哪些
  • 沧州南皮网站建设公司5g站长工具查询
  • 网站网页访问权限全网引擎搜索
  • 做网站的软件著作权网络营销案例成功案例
  • 做二维码网站一套完整的运营方案
  • 注册公司流程流程图哈尔滨seo整站优化
  • 网站建设 模板网站seo推广软件代理
  • 住房建设城乡网站新闻媒体发布平台
  • 做网站的问卷调查网站制作网站推广
  • 呼和浩特网站建设小程序如何自己开个网站平台
  • 网站建设报价怎么差别那么大汕头百度网络推广
  • iis怎么设置网站网站推广的软件
  • 织梦源码网站建设好了后登录不了苏州网站维护
  • 网站独立ip如何做301重定向如何用google搜索产品关键词
  • 自建房设计图seo是指搜索引擎优化
  • 重庆有什么好玩的地方景点介绍广州seo优化推广
  • 软件外包项目平台seo建站技术
  • 网站建设公司苏州免费制作网站的平台
  • 网络存储上做网站唐山seo优化
  • 怎么做网站的rss微信广告投放平台
  • 用网站做成软件荥阳网络推广公司
  • 广州市建设工程交易服务中心网站营销推广的特点