day26 IO

day26- 系统编程之 文件IO(II) 及 文件属性 DIR表示目录流指针 direntry表示一次取整体目录的一条 阅读详情

time/localtime

time_t time(time_t *tloc) ;

功能:返回1970(格林尼治时间)到现在的时间秒数

参数:计算出来的秒数

返回值:成功返回1970年到现在的秒数,失败返回-1并置位错误码

eg:

time_t TM

time(&TM):调用完成TM保存了计算出来的秒数

eg:time_t TM

TM=time(NULL);调用完成返回值TM也保存了计算出来的秒数

      struct tm *localtime(const time_t *timep);
       功能:时间的秒数作为参数,算出具体的年月日,时分秒。
       参数:时间的秒数
       返回值:成功返回(struct tm 类型)具体的年月日时分秒,失败返回NULL,并置位错误码。
        struct tm {
               int tm_sec;    /* Seconds (0-60) */
               int tm_min;    /* Minutes (0-59) */
               int tm_hour;   /* Hours (0-23) */
               int tm_mday;   /* Day of the month (1-31) */
               int tm_mon;    /* Month (0-11) */
               int tm_year;   /* Year - 1900 */
               int tm_wday;   /* Day of the week (0-6, Sunday = 0) */
               int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */
               int tm_isdst;  /* Daylight saving time */
           };

#include <myhead.h>
int main(int argc, const char *argv[])
{
    time_t TM;
    time(&TM);//算出从1970年到现在的时间秒数

    struct tm *shijian = localtime(&TM);//返回时间类型的结构体

    printf("%d-%d-%d\t%d:%d:%d\n",shijian->tm_year+1900,
            shijian->tm_mon+1,shijian->tm_mday,shijian->tm_hour
            ,shijian->tm_min,shijian->tm_sec);
    return 0;
}

12、关于标准文件流指针

stdin:标准输入流指针

stdout:标准输出流指针

stderr:标准错误流指针

结论:标准输入流指针,标准输出流指针缓冲区大小时1024,标准错误流指针没有缓冲区。

#include <myhead.h>

int main(int argc, const char *argv[])
{
    char buff[100];
    fgets(buff,sizeof(buff),stdin);//获取标准输入流指针的内容
    printf("%s",buff);
    fputs(buff,stdout);
    printf("%ld\n",stdin->_IO_buf_end-stdin->_IO_buf_base);//1024
    printf("%ld\n",stdout->_IO_buf_end-stdout->_IO_buf_base);//1024
    printf("%ld\n",stderr->_IO_buf_end-stderr->_IO_buf_base);//0

 FILE *fp = fopen("./1.txt","r");
    if(fp==NULL)
    {
        perror("fopen");
        return -1;
    }
    fgets(buff,sizeof(buff),fp);
    printf("%ld\n",fp->_IO_buf_end-fp->_IO_buf_base);//4096
    
    return 0;
}

缓冲区的刷新时机

行缓冲区(stdin,stdout)大小1024

不缓冲区(stden)大小是0

全缓冲区(FILE *fp)大小是4096

行缓冲区刷新时机

#include <myhead.h>

int main(int argc, const char *argv[])
{
    int n;
    //1、程序没有结束缓冲区不刷新
    printf("班长是好人");
    
//    2、输出有换行时刷新缓冲区
    printf("你好啊大图\n");
    
    //3、输入输出发生切换时刷新缓冲区
    printf("我昨天打篮球了");
    scanf("%d",&n);

    //4、手动调用缓冲区刷新函数强制刷新缓冲区
    printf("唐明宇来自于广袤的原始森林");
    fflush(stdout);
    
    //5、缓冲区满了也会刷新
    
    int i;
    for(i = 0;i<1025;i++)
    {
        fputc('A',stdout);
    }
    

    //6、关闭输入输出流指针
    printf("下沙大学城");
    fclose(stdout);
    while(1);
    return 0;
}

不缓冲刷新时机,没有缓冲区,直接输出

#include <myhead.h>

int main(int argc, const char *argv[])
{

    fputs("唐明宇",stderr);
    while(1);
    return 0;
}

fscanf 、fprintf

 #include <stdio.h>

     
       int fscanf(FILE *stream, const char *format, ...);
       功能:读取文件内容,按照格式转换字符串的形式存入变量中,遇到空格,回车,tab键(制表符),换行自动结束。
       参数1:文件指针
       参数2:格式转换字符串
       参数3,4,5...:需要存储扫描到的结果注意:只能是变量。
       返回值:成功返回读取的项数,失败返回0,到达文件末尾返回EOF。
       int fprintf(FILE *stream, const char *format, ...);
       功能:将变量或者常量的内容按照格式转换字符串的形式写入到文件,遇到\0写入结束.
       参数1:文件指针
       参数2:格式转换字符串
       参数3,4,5...:要存入文件的变量或者常量。
       返回值:成功返回读取的项数,失败返回0,到达文件末尾返回EOF。       
#include <myhead.h>

int main(int argc, const char *argv[])
{
    FILE *fp = fopen("./1.txt","w+");//读写方式打开文件
    if(NULL==fp)
    {
        perror("fopen");
        return -1;
    }

    char s[100] = "杭州是个好地方";
    char s1[100] = "1";
    int a = 200;
    float b = 12.5;
    char c = 'W';
    fprintf(fp,"%s %d %f %c",s,a,b,c);
    
    fseek(fp,SEEK_SET,0);//光标位于文件的开头
    char d;
    fscanf(fp,"%s %d %f %c",s1,&a,&b,&d);//读取文件内容
    printf("%s\n",s1);
    printf("%c",d);
    return 0;
}

练习登录注册界面

使用fscanf和fprintf 实现登录注册界面

以追加写的方式将账户密码写入文件可以写入多个账户密码,中间加上空格。

1、建立循环菜单界面

2、功能1调用注册函数,注册账户密码写入到文件中,关闭文件。

3、功能2调用登录函数,手动输入登录账户密码,循环读取文件内容与输入的账户密码匹配,

匹配成功显示登录成功,匹配失败显示登录失败。

#include"fun.h"
int main(int argc, const char *argv[])
{
    int ch;
    printf("argc = %d\targv[0] = %s\tagrv[1] = %s\n",argc,argv[0],argv[1]);
    if(argc!=2)
    {
        printf("参数错误\n");
        return -1;
    }
    while(1)
    {
        printf("\t\t\t1、注册\n");
        printf("\t\t\t2、登录\n");
        printf("\t\t\t0、退出\n");
        printf("请输入你的选择:");
        scanf("%d",&ch);
        getchar();//吸收回车
        switch(ch)
        {
            case 1:
            regist(argv[1]);//注册函数
            break;
            case 2:
            login(argv[1]);//登录函数
            break;
            case 0:
            exit(EXIT_SUCCESS);//成功退出
            //exit(EXIT_FAILURE);//失败退出
            break;
            default:
            printf("输入有误请重新输入\n");
        }
    }
    return 0;
}



#include"fun.h"
int regist(const char *File)
{
    char name[20],code[20];
    printf("请输入注册账户:");
    fgets(name,sizeof(name),stdin);//输入账户
    printf("请输入注册密码:");
    fgets(code,sizeof(code),stdin);//输入密码
    name[strlen(name)-1] = '\0';
    code[strlen(code)-1] = '\0';
    
    FILE *fp = fopen(File,"a");//追加写的方式写入文件
    if(fp==NULL)
    {
        perror("fopen");
        return -1;
    }
    fprintf(fp,"%s %s ",name,code);//将账户密码写入文件
    fclose(fp);//关闭文件
    return 0;
}
int login(const char *File)
{
    char dname[20],dcode[20];//存储输入的账户密码
    char name[20],code[20];//存储读取的账户密码
    printf("请输入登录账户:");
    fgets(dname,sizeof(dname),stdin);//输入账户
    printf("请输入登录密码:");
    fgets(dcode,sizeof(dcode),stdin);//输入密码
    dname[strlen(dname)-1] = '\0';
    dcode[strlen(dcode)-1] = '\0';
    

    //循环读取文件内容与账户密码匹配
    FILE *fp = fopen(File,"r");//只读方式打开
    if(fp==NULL)
    {
        perror("fopen");
        return -1;
    }
    int flag=0;
    while(1)
    {
        int res = fscanf(fp,"%s %s",name,code);//读取到的账户密码
        if(res==EOF)//读取到文件末尾退出
        {
            break;
        }
        if(strcmp(dname,name)==0&&strcmp(dcode,code)==0)
        {
            printf("登录成功!!!\n");
            flag=1;
            return 0;
        }
    }
    if(flag==0)
    {
        printf("登录失败,请重新输入\n");
    }
    fclose(fp);//关闭文件
    return 0;
}


#ifndef _FUN_H_
#define _FUN_H_
#include<myhead.h>
int regist(const char *);
int login(const char *);
#endif

fread、fwrite

主要针对二进制文件的读写操作,内存按照扇区存储,每8个扇区是一块

#include <stdio.h>

       size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
        功能:从stream指向的文件中读取nmemb项数据,每一项是size字节,存入到ptr指向的空间。
        参数1:存储读取内容的指针,可以存储任意类型数据
        参数2:读取的每一项大小单位是字节
        参数3:读取的项数
        参数4:文件指针。
        返回值:成功返回读取的项数,读取到文件末尾返回0,该无法识别读取失败还是读取到文件末尾。
       size_t fwrite(const void *ptr, size_t size, size_t nmemb,
                     FILE *stream);
        功能:将ptr指向的数据写入到stream指向的文件中,写入nmemb项,每一项size字节。
        参数1:存储写入内容的指针,可以存储任意类型数据
        参数2:写入的每一项大小单位是字节
        参数3:写入的项数
        参数4:文件指针。
        返回值:成功返回写入的项数,写入失败返回0。
#include <myhead.h>

int main(int argc, const char *argv[])
{
    FILE *fp = fopen("./1.txt","w+");//读写方式打开
    if(NULL==fp)
    {
        perror("fopen");
        return -1;
    }
    char buff[1024] = "123456789";//写入的内容
    int res = fwrite(buff,2,4,fp);//写入4项,每项2字节
    res = fwrite(buff,sizeof(buff),1,fp);//全部写入
    res = fwrite(buff,1,sizeof(buff),fp);//全部写入
    printf("res = %d\n",res);//返回值返回写入的项数
    
    fseek(fp,SEEK_SET,0);
    char s[1024];
    res = fread(s,1,res,fp);//读取1字节读取res项
    res = fread(s,1,5,fp);//读取5项每项1字节
    res = fread(s,sizeof(s),1,fp);//全部读取
    res = fread(s,1,sizeof(buff),fp);//全部读取
    printf("res = %d\ns = %s\n",res,s);//返回值返回读取的项数
    return 0;
}

练习一:写入读取整数

#include <myhead.h>

int main(int argc, const char *argv[])
{
    int n = 100;
    FILE *fp = fopen("./1.txt","w");
    if(fp==NULL)
    {
        perror("fopen");
        return -1;
    }

    fwrite(&n,sizeof(int),1,fp);//写入一个整数,写1项每项4字节
    fclose(fp);

    fp = fopen("./1.txt","r");
    if(fp==NULL)
    {
        perror("fopen");
        return -1;

    }
    int m;
    fread(&m,sizeof(int),1,fp);//读取整数
    printf("m = %d\n",m);
    return 0;
}

练习二:写入结构体

#include <myhead.h>

typedef struct
{
    int id;
    char name[20];
}user;
int main(int argc, const char *argv[])
{
    user us = {1001,"唐明宇"};//用户信息
    FILE *fp = fopen("./1.txt","w");
    if(fp==NULL)
    {
        perror("fopen");
        return -1;
    }

    fwrite(&us,sizeof(user),1,fp);//写入用户信息
    fclose(fp);

    fp = fopen("./1.txt","r");
    if(fp==NULL)
    {
        perror("fopen");
        return -1;

    }
    user ttt;
    fread(&ttt,sizeof(user),1,fp);//读取结构体变量
    printf("id = %d\t姓名 = %s\n",ttt.id,ttt.name);
    return 0;
}

feof、ferror

 #include <stdio.h>

      
       int feof(FILE *stream);
       功能:检测光标是否到达文件末尾,到达返回非0,未到达返回0
       参数:文件指针

       int ferror(FILE *stream);
       功能:检测光标是否出错,出错返回非0,未出错返回0.
       参数:文件指针。

fell

计算光标到开头所占字节数

参数:文件指针

返回值:成功返回光标到文件开头所占字节数,失败返回-1,并置位错误码

rewind

功能:将光标返回到文件开头

参数:文件指针

返回值:无

fseek

 #include <stdio.h>

       int fseek(FILE *stream, long offset, int whence);
       功能:移动文件内光标函数。
       参数1:文件指针
       参数2:
       SEEK_SET:从头开始移动
       SEEK_CUR:从当前位置开始移动
       SEEK_END:
从末尾开始移动
       参数3:
       >0:往后移动字节数
       <0:往前移动字节数
       =0:不移动.
       
       eg:光标位于文件的开头
       fseek(fp,0,SEEK_SET);
       光标从头向后移动10字节。
       fseek(fp,10,SEEK_SET);
       光标从末尾向前移动5字节
       fseek(fp,-5,SEEK_END);


#include<myhead.h>
int main(int argc, const char *argv[])
{
	FILE *fp1 = fopen("./2.txt","r");
	FILE *fp2 = fopen("./3.txt","w");
	if(NULL==fp1||NULL==fp2)
	{
		perror("fopen");
		return -1;
	}
	char buff[102];
	size_t b;
	while((x=fread(buff,1,sizeof(buff),fp1))>0)
	{
		size_t a = fwrite(buff,1,x,fp2);
		if(b!=a)
		{
			perror("失败");
			fclose(fp1);
			fclose(fp2);
			return -1;
		}
	
	}	
			fclose(fp1);
			fclose(fp2);
//		fp2 = fopen("./3.txt","r");
//		fread(buff,1,sizeof(buff),fp2);
 
	
	
	return 0;
}

Dify 本地部署教程 到这里,Dify 就安装完成了,更多操作设置可以参考官方文档,Dify 和 FastGPT 基本上差不多,也可以同时安装一下 FastGPT 进行体验~Docker Compose 部署 | Dify。 阅读详情

相关推荐

H3C-HCL模拟器-STP生成树协议实验

边缘接口的存在是为了提高网络的收敛速度和性能。由于边缘接口连接的是终端设备,这些设备通常不会产生环路,因此不需要参与生成树协议的计算和决策。边缘接口通常是指那些不会连接到其他交换机或生成树的冗余路径的接口。H3C交换机千兆口的cost默认是20,把SW2的g1/0/2接口的cost改为100;SW4是根网桥,根据STP计算,闭塞端口应该在SW1上;方法:使得SW2到SW1的cost比SW4到SW1更大;7)修改配置:把SW1连接PC的所有接口配置为边缘接口。协议的计算开销,提高网络的收敛速度。

网络工程 2995

day26 文件io

标准io是在文件的基础上增加了缓冲区,提高对普通文件操作的效率。文件对底层操作,速度快,一般操作硬件对应的设备文件。文件描述溢出就是文件使用完没有及时关闭文件。:系统为用open打开的文件分配的标识符。使用完时及时释放,避免文件描述符溢出。

qq_53671628的博客 620

WinForm多语言切换实战:5分钟搞定中英文界面(附完整代码)

本文提供了WinForm应用实现中英文界面切换的两种高效实战方案。通过利用内置的本地化机制和资源文件,开发者可以在5分钟内为窗体添加多语言支持,并附有完整代码示例,帮助快速应对软件国际化需求。

weixin_29230773的博客 406

day26:IO流

IO流:输入输出流 I:intput--->输入 O:output--->输出 File类的使用 File 对象的创建 /* 1、如何创建File类的实例 File(String filePath) File(String parentPath , String childPath) File(File parentFile , String childFile) 2、 相对路径:相较于某个路径下,

卓汶的博客 311

多节阶梯阻抗变换器工程设计的公式推导

  多节阶梯阻抗变换器工程设计的公式推导,仔细看此文,有点烧脑,所以碎片十分钟,收获一丢丢。   现在就来设计一个超宽带多节阶梯阻抗变换器,要求带内纹波符合切比雪夫分布。   其实,此文已经是省去了大量中间公式推导,只剩下精炼内容了。   阶梯阻抗变换器指标需求   假设现在有一项目需求分析结果是:做一个微带线超宽带阶梯阻抗变换器,指标如下:   从50欧变换到100欧;   回波损耗22dB;   功率容量:2W;   频率范围2~18GHz;   插损能做多少就多少,用30mil板厚.

wusuowei1010的博客 7809

嵌入式设备电量显示实战:MCP3421 ADC采集从原理到代码全解析(附避坑指南)

本文详细解析了嵌入式设备中MCP3421 ADC芯片在电量显示应用中的硬件设计、寄存器配置、I2C通信调试及低功耗优化策略。通过实战代码和避坑指南,帮助开发者实现高精度电量监测,特别针对I2C时序和分压电路设计等常见问题提供解决方案,适用于物联网终端和移动设备开发。

weixin_42525632的博客 387

day26 io 进程

可根据实际主题调整子标题和内容深度,例如增加代码示例、数学公式或图表说明。

2501_92635427的博客 237

别再死记硬背了!一张图搞懂无刷电机半桥与全桥驱动的核心差异(附避坑指南)

本文深入解析无刷直流电机的半桥与全桥驱动方式的核心差异,提供直观对比与选型指南。半桥驱动结构简单、成本低,适合低要求场景;全桥驱动性能优越但复杂,适用于高精度控制。文章还包含实战避坑指南,帮助工程师优化驱动方案选择与应用。

weixin_29290947的博客 320

day26-IO(2)

2.库函数是对系统调用的封装,可以在不同的操作系统中安装并使用,库函数最终还是要调用系统调用完成对应功能。1.标准IO是有缓存的IO,文件IO没有缓存,适合于通信、硬件设备操作。1.系统调用:是Linux内核中的代码,只能在Linux系统中使用。2.标准IO是库函数,文件IO是系统调用。文件描述符是有上限的,到达上限后再打开会报错误。文件不存在创建(注意要给定创建文件的权限)4.标准IO对应的文件IO的打开方式。有三个特殊的文件描述符:标准输入(打开文件获得操作文件的文件描述符。写入的每个对象的大小。

m0_75094223的博客 597

机加工机器人系列编程:Fanuc M-710iC_(2).FanucM-710iC机器人的硬件配置

Fanuc M-710iC 机器人是一种广泛应用在汽车零部件制造行业中的工业机器人。它的本体结构设计紧凑、稳定,适用于多种加工任务。了解机器人的本体结构是进行编程和维护的基础。

zhubeibei168的博客 994

VSCode + QMT 量化交易完整解决方案!

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1327

Day26_文件IO 20240730

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。

onion0857的博客 2369

【unity实战】Cinemachine虚拟相机实战,使用InputSystem+Cinemachine+CharacterController复刻各种主流游戏的相机控制

这里主要是探讨如何使用InputSystem+Cinemachine+CharacterController复刻各种主流游戏的相机控制,我们主要专注Cinemachine实战效果,所以并不会深入讨论Cinemachine和CharacterController比较细节的参数介绍。注意:前面为了测试方便,我还是先用的旧的输入系统代替InputSystem【推荐100个unity插件之10】Unity最全的最详细的Cinemachine(虚拟相机系统)介绍,详细案例讲解,快速上手。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3751

Java学习路线:day26 IO流

文章目录第13章 IO流File类的使用File类的实例化File类的常用方法1File类的常用方法2课后练习IO流原理及流的分类IO流原理流的分类IO 流体系节点流(或文件流)FileReader读入数据的基本操作FileReader中使用read(char[] cbuf)读入数据FileWriter写出数据的操作使用FileReader和FileWriter实现文本文件的复制使用FileInputStream不能读取文本文件的测试使用FileInputStream和FileOutputStream读写非

杨丙寅 2183

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IO Day26

【代码】IO Day26。

m0_67315141的博客 156

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IO DAY26

2、使用管道实现AB两个进程之间的互相通信。

m0_60026178的博客 94

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IO day26

思维导图。

m0_60026178的博客 60

Java-day26(IO流)

File类的使用 File 类的使用:常用构造器 /** * 1.如何创建File类的实例 * File(String filePath) * File(String filePath,String filePath) * File(File parentFile,String filePath) * * 2.相对路径:相较于某个路径下,指明的路径 * 绝对路径:包含盘符再累的文件或文件目录的路径 * * 3.路径分隔符 * windows:\\ * uni

weixin_44742328的博客 255

day26IO9

whytobe的博客 56

7月26 IO DAY 2

【代码】7月26 IO DAY 2。

yuyanshang的博客 293

Day 26 IO框架(3)

IO框架(3) FileFilter接口 public interface FileFilter boolean accept (File pathname) 当调用File类中的listFiles()方法时,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件的才可出现在listFiles()的返回值中。 package IO; import java.io.File; import java.io.FileFilter; import java.util.Date;

Shasfpp的博客 133

day26:零基础学嵌入式之文件io

1.打开目录(opendir):DIR *opendir(const char *name);2)返回值:成功返回1970年到现在的秒数,失败返回-1。(3)返回值:包含文件信息的结构体,出错或者读到目录流末尾返回NULL。(3)返回值:成功返回保存日历时间结构体的指针,失败返回NULL。(1)功能:从目录流中读取文件信息并将保存信息的结构体地址返回。4)返回值:成功返回偏移量,失败返回-1。(3)返回值:成功返回目录流指针,失败返回NULL。(4)返回值:成功返回文件描述符,失败返回-1。

sx243694的博客 859

day26-系统IO(2022.2.23)

空洞文件(hole file) 我们知道 lseek()系统调用,使用 lseek 可以修改文件的当前读写位置偏移量,此函数不但可以改变位置偏移量,并且还允许文件偏移量超出文件长度,这是什么意思呢?譬如有一个 test_file,该文件的大小是 4K(也就是 4096 个字节),如果通过 lseek 系统调用将该文件的读写偏移量移动到偏移文件头部 6000 个字节处,大家想一想会怎样?但事实上 lseek 函数确实可以这样操作。 接下来使用 write()函数对文件进行写入操作,也就是说此时将是从偏移文

天天的博客 480

io进程线程——day7.26

为了清楚明了,我没传递一个文件,而是自己创造了一个destfile.txt文件,同时在该程序中向其输入了文档。

m0_69261119的博客 340

JAVA学习记录DAY26-日期类和io流总结

好久没有更新,因为最近学习的东西比较多且杂,时间也不太够用,于是就一直来不及总结。今天来总结一下最近学习的几个知识点。一个是继续把实用类总结收尾,一个是总结一下IO流,再一个总结一下多线程和XML。这篇先把日期类和io流总结一下。 实用类里还有三个和时间相关的类,一个是Date一个是Calendar,还有一个SimpleDateFormat用来转换。 在JAVA里常用来获取时间的方法有System.currentTimeMillis()这是一个long型的ms为单位的整数,该整数的值代表的是距离格林尼治

Alison_zhou的博客 186

IO 作业 day4 6/26

准备对应的源程序和头文件。将源程序编译生成动态库。将源程序编译成静态库。

qq_56558010的博客 549
上一篇: day 25 数据结构 查找及IO
下一篇: day27 文件IO
luochen330x
博客等级 码龄2年 294粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值