文件编程3

文件编程1

文件编程2

文件编程3

文件编程4

stdio.h:C的标准输入输出库:I/O(input output)
文件编程3_第1张图片

1,stdout:输出流
行缓冲:stdout在终端上进行输出的时候,输出的规则为每当出现换行符的时候进行一次刷新缓存,然后再进行操作(printf输出的时候,是看到换行符才进行输出)

fopen():
r:只读
w:只写(如果文件不存在,创建一个新的,如果文件存在,清空原先文件的文件内容)
a:追加(如果文件不存在,创建一个新的,如果存在文件,则在文件末尾进行追加)
r+:可读可写,文件不存在,则打开失败
w+:可读可写(如果文件不存在,创建一个新的,如果文件存在,清空原先文件的文件内容)
a+ :可读可写(如果文件不存在,创建一个新的,如果存在文件,则在文件末尾进行追加)

//r:只读
#include "stdio.h"
int main()
{
     
    FILE *fp;
    fp =fopen("a.txt","r");
    if(fp == NULL)
    {
     
	printf("da kai shi bai\n");
    }
    else
  {
     
   char reco = fgetc(fp);   	
   while(!feof(fp))        
  {
     
   putchar(reco);       
   reco = fgetc(fp);
   }
   fclose(fp);
  } 
    return 0;
}

fclose(fp):
fread
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr:字符串指针
size:读取每个字符的大小
nmemb:读多少
stream:文件描述符指针

#include"stdio.h"
#include"stdlib.h"
#include"string.h"

int main()
{
     
    FILE *fp;
    fp = fopen("./a.txt","w+");
    if(NULL == fp)
    {
     
	perror("open");
	exit(1);
    }
    char *str ="helloworld";
    int number = fwrite(str,sizeof(char),strlen(str),fp);
    if( 0 ==number)
    {
     
    perror("fwrite:");
    fclose(fp);
    exit(1);
    }
    fclose(fp);
    return 0;
}

fseek

#include"stdio.h"
#include"stdlib.h"
#include"string.h"

int main()
{
     
    FILE *fp;
    fp = fopen("./a.txt","w+");
    if(NULL == fp)
    {
     
	perror("open");
	exit(1);
    }
    char *str ="helloworld";
    int number = fwrite(str,sizeof(char),strlen(str),fp);
    if( 0 == number)
    {
     
    perror("fwrite:");
    fclose(fp);
    exit(1);
    }
    fseek(fp, 0, SEEK_SET);
    char buffer[1024] ={
     0};
    int number2 = fread(buffer,sizeof(char),1024,fp);
    if(0 == number2)
    {
     
	perror("fread");
	fclose(fp);
	exit(1);
    }
    printf("read:%s\n",buffer);
    fclose(fp);
    return 0;
}

读字符的家族:
getc:从文件里读取一个字符getc(fp)返回值;当读到文件末尾无字符的时候,返回EOF(NULL)
fgetc:函数调用
getchar():将字符从unsigned char 转换成int进行返回,带走缓冲区中多余的换行符

你可能感兴趣的:(Linux学习笔记,linux)