王道c语言-文件操作

ops/2024/9/22 22:47:23/

fopen fgetc fputc fwrite fread fgets fputs

//main.c
#include <stdio.h>
#include <string.h>int main() {FILE *fp;int ret;//打开/创建文件fp = fopen("test.txt", "wb+");if (NULL == fp) {perror("fopen fail");//perror aim to find reason of errorreturn -1; //程序退出码为-1,说r退出异常}/** putc写操作*/int i=fputc('a',fp); //写入成功返回写入字符,否则 EOFif(EOF == i){//如果提示 fputc error: Bad file descriptor,看是否读写权限有误perror("fputc error");}printf("putc = %c\n",i); //一般i=1/** getc读操作*/char c;long long pos;fseek(fp,-1,SEEK_CUR);pos= ftell(fp);       //获取位置指针距离文件开头的位置printf("after fseek pos=%ld\n",pos);while ( (c=fgetc(fp) ) != EOF){printf("%c",c);}printf("\nend of file\n");pos= ftell(fp);printf("after fgetc pos=%ld\n",pos);/** fwrite fread 读写操作-字符串*/char buf[20]="hello\nworld";ret = fwrite(buf,sizeof (char), strlen(buf),fp);printf("fwrite ret = %d\n",ret);fseek(fp,-strlen(buf),SEEK_CUR);memset(buf,0,sizeof (buf));printf("%buff= %s\n",buf);ret= fread(buf,sizeof (char),sizeof (buf),fp);printf("fread ret = %d\n",ret);pos= ftell(fp);printf("after fwrite pos=%ld\n",pos); //21/** fwrite fread 读写操作-二进制数据-整数*/
//    int num = 123456;
//    ret=fwrite(&num, sizeof(int), 1, fp);
//    printf("fwrite num ret = %d\n",ret); //1
//    fseek(fp,-sizeof(int),SEEK_CUR);
//    num=0;
//    ret = fread(&num, sizeof (int), 1, fp);
//    printf("fread num ret = %d\n",ret);  //1
//    printf("num = %d\n",num);  //123456
//    long long pos= ftell(fp);
//    printf("after fwrite pos=%ld\n",pos); //16
//
//    /*
//     * fgets puts 读写操作
//     *  fgets替换scanf: buf是字符串数组,fgets(buf,sizeof(buf),stdin);
//     *      读取文件时,将stdin换为 fp,即标准输入缓冲区->文件指针
//     *  fputs(buf,fp) fputs(buf,stdout)
//     */
//    char str[10]={0};
//    fseek(fp,-sizeof(int),SEEK_CUR);
//    while (fgets(str,sizeof (str),fp) != NULL) {
        printf("str = |%s\n",str);
//        fputs(str,stdout);
//    }
//    printf("\n%d\n", strlen(str));fclose(fp);return 0;
}

http://www.ppmy.cn/ops/41658.html

相关文章

google test 使用指南

目录 测试项目 calculator.h calculator.cpp test01.cpp 创建新项目 选择Google Test 选择要测试的项目 pch.cpp 加入依赖 设为启动项目 ​编辑 运行 ​编辑 关键点 测试项目 calculator.h #ifndef __CALCULATOR_H__ #define __CALCULATOR_H__#include <i…

深化产教融合,泰迪智能科技助力西南林业大学提质培优

2024年5月7日&#xff0c;泰迪智能科技昆明分公司院校部总监查良红和数据部负责人余雄亮赴西南林业大学理学院就工作室共建事宜进行交流会谈。西南林业大学理学院院长张雁、党委副书记魏轶、副院长谢爽、就业负责人罗丽及学生代表参与本次交流会。 会议伊始&#xff0c;谢副院长…

【Linux】Centos9设置ActiveMq开机自启功能

配置流程&#xff1a; 1. 创建 Systemd 服务文件。这个文件通常存放在/usr/lib/systemd/system/目录下&#xff0c;命名为 activemq.service。 #先创建文件&#xff0c;然后编辑&#xff1a; sudo touch /usr/lib/systemd/system/activemq.service sudo vim /usr/lib/systemd…

异步I/O库-libuv介绍

1.简介 libuv是一个跨平台的支持事件驱动的异步I/O的库&#xff0c;使开发者可以以非阻塞的方式执行文件I/O操作、网络通信、子进程管理等。 libuv的主要特点包括&#xff1a; 事件循环&#xff1a;libuv有一个基于事件循环的模型&#xff0c;它不断地轮询事件&#xff0c;并…

【实战selenium框架下在爱企查爬取企业的历史变更信息】文末附Google浏览器和驱动的下载

代码如下 # 导入包 import random import time from tkinter import filedialog import tkinter as tk import xlrd import os import datetime import csv from selenium import webdriver from selenium.webdriver import Keys from selenium.webdriver.common.by import By…

亚马逊自养号测评策略:提升店铺产品权重的秘诀

对于卖家而言&#xff0c;拥有一款爆款产品无疑是获得流量的关键&#xff0c;同时它也能显著提升店铺的销量。因此&#xff0c;大部分卖家都热衷于学习如何打造爆款产品的策略&#xff0c;特别是对于那些致力于经营自己店铺的卖家来说&#xff0c;掌握这一技巧对于店铺的成功运…

2022 年高教社杯全国大学生数学建模竞赛-C 题 古代玻璃制品的成分分析与鉴别详解+聚类模型Python代码源码

前言 简单介绍一下我自己&#xff1a;博主专注建模四年&#xff0c;参与过大大小小数十来次数学建模&#xff0c;理解各类模型原理以及每种模型的建模流程和各类题目分析方法。参与过十余次数学建模大赛&#xff0c;三次美赛获得过二次M奖一次H奖&#xff0c;国赛二等奖。**提…

JAVA实验项目(二): 抽象类、接口的定义与使用

实验项目二 抽象类、接口的定义与使用 Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&…