打印
[核芯资讯]

C语言 putc()函数,写入单字符到文件流

[复制链接]
4281|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2024-5-14 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
putc()函数
C语言stdio.h标准库putc()函数,可以将参数指定的一个字符,一般为无符号整数的字符,写入到指定的FILE文件流之中,并移动文件位置指针一个位置。

putc()函数语法:
int putc( int char, FILE *ftp )
putc()参数
参数        描述
char        虽然是int类型,但一般在文件系统的操作之中,一般使用无符号整数字符
ftp        指向要将char字符写入到的文件流的指针
putc()返回值
int类型,一般也是无符号整数,表示的是成功写入的那个字符,如果未成功,则返回EOF。

putc()函数实例代码
如下实例代码,通过fopen()函数在指定路径创建一个text.txt文件,并使用ftell()函数获取当前的文件位置指针,并使用putc()写入一个字符,然后再次调用ftell()函数获取文件位置指针,观察写入前后文件指针的移动情况。除此之外,可以观察一下ch的格式化输出运算符使用的是%c,有兴趣的朋友可以将其换成%d,观察输出有什么不同:

#include <stdio.h>

int main() {
    // 创建text.txt文件
    FILE *ftp = fopen("D:\\text.txt","w");
    if(ftp == NULL){
        printf("文件未创建或打开成功!");
    }else{
        printf("文件创建或打开成功!\n");
        int pos1 = ftell(ftp);
        printf("写入之前,文件指针位置:%d\n",pos1);
        int ch = putc('a',ftp);
        if(ch == EOF){
            printf("文件写入未成功!");
        }else{
            printf("文件写入成功!\n");
            printf("写入到text.txt中的的数据为:%c\n",ch);
            // 获取文件指针位置
            int pos2 = ftell(ftp);
            printf("写入一个字符之后,文件指针的位置为:%d",pos2);
        }
        // 关闭文件流
        fclose(ftp);
        // 将指针指向NULL,避免指针悬挂
        ftp = NULL;
    }
    return 0;
}
代码编译运行,得到输出并输入:

文件创建或打开成功!
写入之前,文件指针位置:0
文件写入成功!
写入到text.txt中的的数据为:a
写入一个字符之后,文件指针的位置为:1
在指定的路径中找到text.txt文件,打开,通常情况下,里头会有一个小写的a。

免责声明:内容仅供参考,不保证正确性。

使用特权

评论回复
沙发
tpgf| | 2024-6-4 12:19 | 只看该作者
现在在单片机里边使用这个函数的频率还高吗

使用特权

评论回复
板凳
paotangsan| | 2024-6-4 13:46 | 只看该作者
在单片机中putc函数是不是可以用于串口输出呢

使用特权

评论回复
地板
xiaoqizi| | 2024-6-4 14:32 | 只看该作者
操作文件流还有其他函数有类似的功能吗

使用特权

评论回复
5
wowu| | 2024-6-4 21:45 | 只看该作者
如何认定一个文件是否已经传输完成了呢

使用特权

评论回复
6
wakayi| | 2024-6-4 22:17 | 只看该作者
操作文件流不可避免要使用指针,如何避免误操作呢

使用特权

评论回复
7
renzheshengui| | 2024-6-4 22:49 | 只看该作者
使用这个函数的话 交互的界面是如何实现的呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

667

主题

2841

帖子

0

粉丝