你好, 欢迎回来｡
在这节课上, 我想 讨论写入文件｡
我们要集中精力 写入文本文件时｡
我们将要学习的是 如何写字符, 如何写字符串,
您可以编写格式化的输出｡
这三种方式也表明 我们能够阅读｡
所以有三个函数 你真的必须熟悉才能做这些事情｡
最简单的写操作是 在函数fputc中提供｡
所以就像有一个fgetc 阅读字符的时候,
有一个写字符的fputc.
这将写入单个 字符添加到文本文件fputc中｡
不如书写效率高 字符串, 但有时是必要的｡
它采用整数作为其 第一个参数和作为第二个参数的文件指针
并返回一个整数｡
该函数将
由文件的第一个参数指定的字符 由第二个参数标识｡
所以文件指针表示 它总是做什么：要写入的文件｡
然后你这个角色 是您的第一个参数｡
返回的字符是 如果成功, 则写入｡
记住, 如果它返回eof, 那就意味着失败了｡
如果它返回的不是 eof, 这意味着它是成功的｡
在实践中, 字符是
而不是一个接一个地写入物理文件｡
效率极低｡
putc函数是 等效于fputc｡
你也经常看到这种用法｡
它需要相同的参数 并且返回类型是相同的｡
它们之间的区别在于 PUTC可以在标准库中实现为宏｡
然而, fputc是一个函数｡
不是很大的不同, 但是 我们还没学过宏｡
所以我们还是使用fputc 用于书写单个字符｡
举个例子 非常简单｡
你要做的第一件事 你必须打开文件｡
在此之前, 我们声明 变量, 我们声明一个文件指针,
应该初始化为null｡
然后是整数 我们要写｡
当我们打开我们的文件时, 你会 请注意, 我们做了w或w+｡
W的意思是我们要 只能写, 不能读
W+意味着你可以写和读｡
在这种情况下, 我们可以写和读｡
这里我们有一个for循环｡
我们正在经历 字符数从33到100｡
当这些是整数时, 这意味着字符在ASCII表中表示｡
如果你写一个字符 59, 你必须在ASCII表中查找它,
看看它代表什么, 但它是一个真实的角色｡
在这里我们只是在写 ASCII值33到100, 我们称之为fputc char
fp｡
您可以使用转换
如果您想要创建ASCII值和整数, 你可以用一个atoi｡
所以如果你想写 字符c, 您可以说fputc atoi,
然后将c放在单引号中｡
那也行 因为它会将ASCII码转换为整数并写入｡
但第一个参数是整数, 所以你必须写一个整数｡
第二个参数是我们的文件 指针, 非常简单｡
然后我们最后要做的 我们要做的就是关闭文件｡
我们大概也想 将fp指针设置为空｡
但同样, 它需要一个整数｡
所以要小心｡
它总是代表着 在ASCII表中｡
但是你可以把实际的 两个整数字符
写一个字符串如何 转换成文本文件, 这样更有用,
更高效｡
这是您使用 输入函数｡
这将允许您 写入任何文件或流｡
它与fgets类似, 它 取一个恒定的电荷串, 你想把它写成
指向指针第一个参数
这需要一个, 作为我们的第二个 参数､ 文件指针､
要写入的文件｡
然后它返回一个int｡
所以第一个论点是 指针指向要写入的字符串｡
第二个参数是文件 指针本身, 并且该函数将从字符串写入字符
直到它到达空终止符｡
它不写入空值 终止符添加到文件中,
因此必须显式写入它｡
这会使事情复杂化 当你读回数据时,
它可能是可变长度的, 它 不会在空终止符处结束｡
所以你必须——期望它写一个 结尾有换行符的文本行｡
所以要确保你熟悉 并且或者使用fputc显式地写入它, 一个字符或写它, 它基本上会添加新的一行字符
在你写完之后｡
所以它期待着新的 行字符
您必须明确指定｡
这很简单 用代码来表示｡
你只要说fopen就行了｡
Fputs, 将字符串写入 使用文件指针创建新行｡
然后这里的另一个输出写着 另一个字符串, 然后关闭它
所以在这个例子中, 我们写了两个 字符串,
实际上是两行代码或文件中的两行代码, 我们 用w打开了文件, 加上了阅读的命令｡
写入示例包括 非常简单｡
只需调用几个函数, fopen然后fputs然后fclose｡
现在要编写格式化输出, 我们将使用fprintf｡
同样, 您会注意到
读取和输入的scanf和printf, 您只需添加 fprefix,
并且您正在编写格式化输出｡
因此, 对于写入格式化输出 如果使用fprintf, 则返回一个整数｡
它将文件流作为
参数, 然后是格式说明符 用逗号分隔,
每种格式的参数数目可变 说明符就像printf一样｡
函数的第一个参数 是指向文件对象的指针｡
第二个论点是 那些可变数量的参数｡
它是一个c字符串, 包含一个 一个或多个以下项､
空格字符､ 非空格 字符､ 格式说明符｡
再说一次, 这是非常 类似于printf｡
但你实际上是在写文件｡
所以你可以写格式化 输出到文件｡
如果成功, 它将返回 写入的字符数｡
否则, 它会 如果不成功,
则返回负数｡
它看起来像这样｡
包括标准IO接头｡
创建文件指针｡
然后使用文件指针 要打开一些文本文件, 请将其用于w
plus阅读 然后你只要说fprintf｡
在本例中, 我们使用fprintf｡
我们正在指定文件 指针, 然后我们指定四个字符串, 由
空格, 然后是百分比d｡
我们在写 你好, 我的电话号码是555｡
所以这个文件实际上 写入时格式化的数据｡
让我们以代码块的形式来看一下 看看它是什么样子｡
所以这里没有太多的代码｡
我们只有几行代码｡
在四号线, 我们 创建文件指针｡
同样, 我们会想 将其初始化为null｡
然后, 在第六行, 我们调用fopen｡
我们说打开文件｡ txt, 以便 档案中｡
txt必须存在, 并且c源文件运行的位置
或者无论可执行文件在何处都要手动执行程序｡
我们要打开 用于阅读和写入｡
我们打开后, 我们需要确保文件指针不为空｡
所以我们要说不是fp｡
如果它不为空, 则我们 可以开始写入数据｡
在本例中, 在第9行, 我们 将写入格式化数据｡
所以我们要写的是 我们要写一串二串三串四 字符串,
然后是整数｡
接下来的参数是 只有逗号分隔的字符串以及末尾的整数｡
我只需要把这两个 引号, 因为它不能正常工作,
所以555就在最后｡
然后它会关闭 文件并将其返回｡
所以让我们继续尝试建立 然后运行它, 我们不会看到任何运行的真实的输出｡
我们得去看看 看文件的样子｡
所以当我们编译这个文件时, 您需要确保if语句表示不等于null｡
所以当我们运行这个程序时, 您不会看到任何输出,
它只是运行｡
然后当你看文件的时候 在目录中,
您会看到它将输入包含在一个 行, 你好我的名字是fpp或在555｡
这就是你如何 写入格式化输出｡
很简单｡
您可以新增 如果你想的话｡
它将在末尾添加一个新行, 但可以在这里输入反斜杠n｡
它的工作原理就像printf一样｡
同样, 我们必须运行它, 在查看该文件之前,
我看不到任何有趣的输出｡
在这种情况下, 你会看到一个换行符｡
因此, 将输出写入文件 非常简单｡
你想写人物,
你 做fputc, 你想写字符串fputs, 格式化输出fprintf｡
我们将面临一些挑战
帮助您更加熟悉它, 但很容易 将输出写入文本文件｡
-谢谢—谢谢