C语言中的文件操作(三)

C语言中的文件操作(二)-CSDN博客https://blog.csdn.net/Xiaodao12345djs/article/details/142748215?spm=1001.2014.3001.5501

fputs (文本行输入/写)

  • str 指向要输入的字符串
  • stream 指向要存放字符串的文件
cs 复制代码
#include <stdio.h>

int main()
{
	FILE* pf = fopen("test.txt", "w");
	//如果打开失败,返回空指针NULL
	if (pf == NULL)
	{
		perror("fopen");
		return 1;
	}
	//写操作
	fputs("hello world\n", pf);
	fputs("haha\n", pf);

	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
}

fgets (字符串输入/写)

cs 复制代码
#include <stdio.h>

int main()
{
	FILE* pf = fopen("test.txt", "r");
	//如果打开失败,返回空指针NULL
	if (pf == NULL)
	{
		perror("fopen");
		return 1;
	}
	//读操作

	char arr[20] = { 0 };
	fgets(arr, 5, pf);
	printf("%s\n", arr);
	fgets(arr, 5, pf);
	printf("%s\n", arr);

	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
}

读取到的字符个数是n-1个+一个'\0',比如上方代码,只会读hell+'\0',然后再继续读4个字符+'\0'

当改成读取20个字符,文件里第一行不够20个字符,只读第一行再只读第二行

相关推荐
leiming65 小时前
C++ vector容器
开发语言·c++·算法
SystickInt5 小时前
C语言 strcpy和memcpy 异同/区别
c语言·开发语言
CS Beginner6 小时前
【C语言】windows下编译mingw版本的glew库
c语言·开发语言·windows
JAY_LIN——86 小时前
指针-数组
c语言·排序算法
Xの哲學6 小时前
Linux流量控制: 内核队列的深度剖析
linux·服务器·算法·架构·边缘计算
yaoh.wang7 小时前
力扣(LeetCode) 88: 合并两个有序数组 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·双指针
进阶的猪7 小时前
STM32 使用HAL库SPI读写FLASH(W25Q128JV)数据 Q&A
c语言·stm32·单片机
LYFlied7 小时前
【每日算法】 LeetCode 56. 合并区间
前端·算法·leetcode·面试·职场和发展
艾醒8 小时前
大模型原理剖析——多头潜在注意力 (MLA) 详解
算法
艾醒8 小时前
大模型原理剖析——DeepSeek-V3深度解析:671B参数MoE大模型的技术突破与实践
算法