学习之路:C语言里对txt文本的读写操作

需要设置一个文件指针用来对文本文件进行操作,一共有12个形式分别为

(r,w,a,r+,w+,a+)文本文件 (rb,wb,ab,rb+,wb+,ab+) 二进制文件

具体资料可以看这个网址https://www.cnblogs.com/kangjianwei101/p/5220021.html

用fopen(“文件名”,“操作模式”)赋值给设置的文件指针,在用相应的函数进行文件读写修改操作,

例如fgets(char *s,int size, FILE fp)读取一行文本

fputs(char *s, FILE fpwrite)将数据写入文本中。

下面是例子,打开data.txt文件,并且将data.txt文件的内容拷贝到output.txt文件中去,注意如果代码文件夹中没有data文件会导致打开失败,用户需要提前在当前文件夹中创建一个data文件,并键入数据。

#include 
#include 
#include 
#define MAX_LINE 1024
void perror(const char *s); // 函数声明
/*perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到 标 准 设备 (stderr) .
参数 s 是加上对错误的描述. 而错误的编号是放在errno 中, perror会去自动调用 errno 的错误提示. 大致有点像

void perror(char char *s)
{
    printf("%s %s", s, strerror(errno));
}
*/
int main()
{
 char buf[MAX_LINE];  /*缓冲区*/
 FILE *fp;            /*文件指针*/
 int len;             /*行字符个数*/
 if((fp = fopen("data.txt","r")) == NULL)
//包含要打开的文件名的C字符串。
//其值应遵循运行环境的文件名规范,并且可以包含路径(如果系统支持)。

 {
 perror("fail to read");
 exit (1) ;
 }
	FILE *fpwrite;
	fpwrite = fopen("output2.txt","w");
 /* 从流中读取字符并将它们作为C字符串存储到str中,直到读取(num -1)个字符或者到达换行符或文件结尾,以先发生者为准。

换行符使fgets停止读取,但它被函数视为有效字符,并包含在复制到str的字符串中。*/
while(fgets(buf,MAX_LINE,fp) != NULL)
 {

  /*去掉换行符*/
 printf("%s  \n",buf);
 fputs(buf,fpwrite);
 }
 
 
	//往fpwrite里面传数据 
  	return 0;
}

实际上还有两个函数,比较适合txt读写为fscanf函数,和fprintf函数,用法和scanf,printf函数相同,只是形参多了一个文本指针

,下面是例子,将input.txt文件的内容输入到output.txt文件中




#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS//vs2017编辑器需要加上这一行
#include 
#include 
using namespace std;

int main()
{

	
	FILE *input,*output;
    //需要在文件夹中建一个input.txt文件	
	input = fopen("input.txt", "r");
	output = fopen("output.txt", "w");

	int numl[2];
	for (int i = 0; i<2; i++)
		fscanf(input, "%d", &numl[i]);
	num = numl[0];
	subset = numl[1];
	for (int i = 0; i<2; i++)
	fprintf(output,"%d",);
	fclose(input);
	fclose(output);//关闭流

}

 

 

 

你可能感兴趣的:(个人理解)