关于C的fgets

liveNight365 liveNight365 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
/* 打开模式介绍
"r" 只读,文件必须存在
"r+", 读写,文件必须存在

"w" 只写,不管文件是否存在,都创建新文件(同时清空原内容)
"w+", 读写,不管文件是否存在,都创建新文件(同时清空原内容)

"a" 追加, 文件不存在会创建新文件,存在则打开.只能追加
"a+", 读+追加,文件不存在会创建新文件,存在则打开.可以调整文件指针来读取数据,但是写入数据会自动跳到文件最后进行追加
*/
FILE *pFile;
pFile = fopen("a.txt", "w");
fprintf(pFile, "fclose example");
rewind(pFile);
fputs("1234567890 hello world 你好啊\nsecond line\ngo\n", pFile);
fclose(pFile);

// 以读写方式打开一个文件
pFile = fopen("a.txt", "a+"); //1,打开一个文件,不存在在创建
if (pFile == NULL)
{
puts("fopen error\n");
}
else
{
//pFile = freopen("a.txt", "r+", pFile); //重新打开这个文件,以r+(可读写)方式打开
fclose(pFile);
pFile = fopen("a.txt", "r+");
if (pFile == NULL)
{
puts("freopen error\n");
}
else
{
char buff[1024] = {0};
fgets(buff, 1023, pFile); //遇到文件结束符或者换行符就会停止读取.
puts(buff);
}
}

//rewind(pFile);
int pos = ftell(pFile);
fpos_t fpos;
fgetpos(pFile, &fpos);
if (pos == EOF)
{
puts("ftell is end of file\n");
}
fseek(pFile, 0, SEEK_CUR); //SEEK_SET, SEEK_CUR, SEEK_END.....注意,注释了这一句后,后面的fputs就没有写到文件中去.
fputs("new fputs", pFile);
fputc('A', pFile);
fflush(pFile);

printf("\n\nfgetc测试\n");
rewind(pFile); //移动文件指针到文件头
int ch;
while (EOF != (ch=fgetc(pFile)))
{
putchar(ch);
}

struct stTest
{
int a;
char c;
double d;
};
stTest st = {1, 'C', 3.65};
fseek(pFile, 0, SEEK_END);
fwrite(&st, sizeof(st), 1, pFile);
memset(&st, 0, sizeof(st));
fseek(pFile, -sizeof(st), SEEK_END);
fread(&st, sizeof(st), 1, pFile);
printf("%d, %c, %Lf", st.a, st.c, st.d);

fclose(pFile);
system("pause");
}
...全文

相关推荐

C语言中fgets和fscanf区别详解

C语言中fgets和fscanf区别详解 一、作用上的大概区别: ①fgets:从文件中读取一行数据存入缓冲区(fgets遇到回车才会结束,不对空格和回车做任何转换就录入到缓冲区,结束后再往缓冲区写多一个\0,所以它是读一行数据) ②fscanf:从文件中读取一段数据存入缓冲区(fscanf遇到空格或回车就结束,它会把空格或回车转换为\0,所以它是读一小段数据) 二、举个例子:把a.txt文件中的内容复制到b.txt。 a.txt中的内容(第一行中“我爱你小白”和“开玩笑”中间有个空格,每行的最后都有回车): 我爱你小白 开玩笑 哈哈 开玩笑 1、使用fgets读取a.txt文件并写入

weixin_38729022

C语言文件操作中 fgets与fputs 函数详解

C语言文件操作中 fgets、fputs 函数详解 先给出api fgets 语法: #include char *fgets( char *str, int num, FILE *stream ); 函数fgets()从给出的文件流中读取[num – 1]个字符并且把它们转储到str(字符串)中. fgets()在到达行末时停止,在这种情况下,str(字符串)将会被一个新行符结束. 如果fgets()达到[num – 1]个字符或者遇到EOF, str(字符串)将会以null结束.fgets()成功时返回str(字符串),失败时返回NULL. 自己理解 1、每次

weixin_38547151

c语言fgets fputs 读写文件

读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针)

yangzhili568

详解C语言gets()函数与它的替代者fgets()函数

在c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回。如果要读取一行字符串,比如: I love BIT 这种情况,scanf()就无能为力了。这时我们最先想到的是用gets()读取. gets()函数从标准输入(键盘)读入一行数据,所谓读取一行,就是遇到换行符就返回。gets()函数并不读取换行符’\n’,它会吧换行符替换成空字符’\0′,作为c语言字符串结束的标志。 gets()函数经常和puts()函数配对使用,puts()函数用于显示字符串,并自动在字符串后面添加一个换行标志’\n’ gets()函数存在一个严重的缺

weixin_38688380

C语言中输入函数(scanf()、fgets()和gets())的区别详解

主要给大家介绍了关于C语言中三种输入函数(scanf()、fgets()和gets())区别的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

weixin_38645379
评论 5
收藏 已收藏
分享
返回顶部
liveNight365
C++ 语言 65,214 成员 250,514 内容