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个字符,只读第一行再只读第二行

相关推荐
mit6.82434 分钟前
dfs|前后缀分解
算法
扫地的小何尚1 小时前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
千金裘换酒2 小时前
LeetCode反转链表
算法·leetcode·链表
JoyCheung-2 小时前
Free底层是怎么释放内存的
linux·c语言
byzh_rc3 小时前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
qq_433554543 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
歌_顿3 小时前
知识蒸馏学习总结
人工智能·算法
闲看云起4 小时前
LeetCode-day6:接雨水
算法·leetcode·职场和发展
没学上了4 小时前
VLM_一维离散卷积与二维离散卷积(还是复习感觉还行)
算法
黛色正浓4 小时前
leetCode-热题100-贪心合集(JavaScript)
javascript·算法·leetcode