当前位置:网站首页>IO进程线程->标准IO->day1
IO进程线程->标准IO->day1
2022-07-30 05:46:00 【鲸叫我照顾海QAQ】
目录
一、练习
1. 用fgets和fputs实现,拷贝一个文件,例如将1.c的内容拷贝给2.c
2. 用fgets计算一个文件的大小,要求封装成函数
3. 用fgets计算一个文件有几行,要求封装成函数(linux操作系统以\n结尾,就算是最后一行也
有一个'\n')
二、fgets和fputs
2.1 fputs
功能:将字符串输出到指定的文件中;
头文件:
#include <stdio.h>
int fputs(const char *s, FILE *stream);
int puts(const char *s);
参数: const char *s:指定要输出的字符串首地址;
FILE *stream:流指针;
返回值:
成功,返回非负数;
失败,返回EOF;
2.2 fgets
三、 拷贝函数实现
3.1 代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE *p1=fopen("./1.text","r");
FILE *p2=fopen("./2.text","w+");
if(NULL == p1 && NULL == p2)
{
perror("fopen");
return -1;
}
char i[20]={0};
while(fgets(i,sizeof(i),p1) != NULL)
{
fputs(i,p2);
}
printf("拷贝成功\n");
fclose(p1);
fclose(p2);
return 0;
}
3.2 执行结果

四、文件大小函数
4.1 文件大小函数
//文件大小
int len_fgtes()
{
FILE *p=fopen("./3.text","r+");
if(NULL == p)
{
perror("fopen");
return -1;
}
char i[20];
int arr=0;
while(fgets(i,sizeof(i),p) != NULL)
{
arr=arr+strlen(i);
}
printf("3.text的字节数为:%d\n",arr);
fclose(p);
}
4.2 主函数
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
len_fgtes();
return 0;
}
4.3 执行结果

五、文件行数
5.1 文件行数函数
//文件行数
int hang_fgets()
{
FILE *p=fopen("./1.text","r+");
if(NULL == p)
{
perror("fopen");
return -1;
}
char i[20];
int arr=0;
while(fgets(i,sizeof(i),p) != NULL)
{
for(int k=0;k<sizeof(i);k++)
{
if(i[k] == '\n')
{
arr++;
break;
}
}
}
printf("1.text的行数为:%d\n",arr);
fclose(p);
}
5.2 主函数
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
hang_fgets();
return 0;
}
5.3 执行结果

边栏推荐
- [Quick MSP430f149] Notes on learning MSP430f149 during the game
- 【江科大自化协stm32F103c8t6】笔记之【入门32单片机及EXTI外部中断初始化参数配置】
- 超详细的PCB高可靠辨别方法
- SSH-RSA密钥
- VsCode打开终端的方法
- 2020-09-03 Solve the very slow installation of pip install [Errno 101] Network unreachable problem
- js高级学习笔记(详细)
- This beta version of Typora is expired, please download and install a newer;解决方法
- i++与 ++i 的区别
- this的指向问题
猜你喜欢
随机推荐
电子工程师怎么才能规范设计标准、提高设计效率?
openssl1.1.1ARM dual compilation
华秋第八届硬创赛与安创加速器达成战略合作,助力硬科技项目成长
【江科大自化协stm32F103c8t6】笔记之【入门32单片机及TIM定时中断初始化参数配置】
ipconfig Command Guide
CPU缓存一致性问题
高交会重要活动之一|2020中国硬件创新大赛全国总决赛
每日一知识:手写深拷贝和浅拷贝(解决了循环引用的问题)
查找Proj4js地图投影参数
i++与 ++i 的区别
Difference between logical shift right and arithmetic right shift
【部分项目展示】
Kunlun On-state Screen Production (serial 1)---Contact
openssl 1.1.1 compile statement
xxx is not in the sudoers file.This incident will be reported错误
NS3报错 fatal error: ns3/opengym-module.h: No such file or directory
sizeof和strlen最全区别,以及指针和数组运算解析
独立按键控制led进阶(1)
QT serial 3: LORA test platform based on QT and STM32H750 (2)
IO进程线程->目录IO->day3

![[Punctuality Atom] Learning and use of IIC (unfinished...)](/img/b7/325cad848eacee67c56c6cad321bd0.png)







