您的位置:首页 > 编程语言 > C语言/C++

C语言中的各种输入函数整理

2016-08-09 17:05 169 查看

C输入输出函数标准文件函数

当用标准文件函数对文件进行读写操作时, 首先将所读写的内容放进缓冲区,

即写函数只对输出缓冲区进行操作, 读函数只对输入缓冲区进行操作。例如向一

个文件写入内容, 所写的内容将首先放在输出缓冲区中, 直到输出缓冲区存满或

使用fclose()函数关闭文件时, 缓冲区的内容才会写入文件中。若无fclose()

函数, 则不会向文件中存入所写的内容或写入的文件内容不全。

 

printf() 和scanf()

这两个函数可以在标准输入输出设备上以各种不同的格式读写数据

%d 十进制有符号整数

%u 十进制无符号整数

%f 浮点数

%s 字符串

%c 单个字符

%p 指针的值

%e 指数形式的浮点数

%x, %X 无符号以十六进制表示的整数

%0 无符号以八进制表示的整数

%g 自动选择合适的表示法

 

puts()函数gets()函数

1.puts()函数

puts()函数用来向标准输出设备(屏幕)写字符串并换行。
2.gets()函数
scanf()函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束。但gets() 函数将接收输入的整个字符串直到回车为止。
 
fopen()函数 fclose()函数

 fopen函数用于打开文件, 其调用格式为: FILE *fopen(char *filename, *type);
 
type选项
━━━━━━━━━━━━━━━━━━━━━━━━━━━━

            字符                 含义

      ────────────────────────────

            "r"            打开文字文件只读

            "w"            创建文字文件只写

            "a"            增补, 如果文件不存在则创建一个

            "r+"           打开一个文字文件读/写

            "w+"           创建一个文字文件读/写

            "a+"           打开或创建一个文件增补

            "b"            二进制文件(可以和上面每一项合用)

            "t"            文这文件(默认项)

      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

fprintf()、fputs()和fputc()

文件的顺序写操作函数,其调用格式如下:

      int fprintf(FILE *stream, char *format, );

      int fputs(char *string, FILE *steam);

      int fputc(int ch, FILE *steam);
fprintf() 函数的返回值为实际写入文件中的字符个数(字节数)。如果写错误,
则返回一个负数,是一个格式化函数和printf()函数格式化相同。
fputs()函数返回0时表明将string指针所指的字符串写入文件中的操作成功,
返回非0时,表明写操作失败。
fputc()函数返回一个向文件所写字符的值, 此时写操作成功,否则返回EOF(文件结束结束其值为-1, 在stdio.h中定义)表示写操作错误。
 

fscanf()、fgets()和fgetc()函数 

文件的顺序读操作函数, 其调用格式 

       int fscanf(FILE *stream, char *format, );

       char fgets(char *string, int n, FILE*steam);

       int fgetc(FILE *steam);

fscanf()函数的用法与scanf()函数相似,只是它是从文件中读到信息。返回值为EOF(即-1), 表明读错误, 否则读数据成功。fscanf()函数的用法与scanf()函数相似,只是它是从文件中读到信息。fscanf()函数读到空白符时,
便自动结束。

 

fgets()函数从文件中读取至多n-1个字符(n用来指定字符数), 并把它们放入string指向的字符串中, 在读入之后自动向字符串未尾加一个空字符, 读成功返回string指针, 失败返回一个空指针。

 

fgetc()函数返回文件当前位置的一个字符,读错误时返回EOF。

 

fseek() fread() fwrite() ftell()

 int fseek (FILE *stream, long offset,int fromwhere);

int fread(void *buf, int size, int count, FILE *stream);

int fwrite(void *buf, int size, int count, FILE *stream);

long ftell(FILE *stream);

 

fseek()函数的作用是将文件的位置指针设置到从fromwhere开始的第offset 字节的位置上, 其中fromwhere是下列几个宏定义之一

━━━━━━━━━━━━━━━━━━━━━━━━━━━

      符号常数          数值            含义

───────────────────────────

     SEEK_SET           0          从文件开头

     SEEK_CUR           1          从文件指针的现行位置

     SEEK_END           2          从文件末尾

━━━━━━━━━━━━━━━━━━━━━━━━━━━

   offset是指文件位置指针从指定开始位置(fromwhere指出的位置)跳过的字节数。它是一个长整型量, 以支持大于64K字节的文件。fseek()函数一般用于对二进制文件进行操作。当fseek()函数返回0时表明操作成功, 返回非0表示失败

 

fread()函数是从文件中读count个字段, 每个字段长度为size个字节, 并把

它们存放到buf指针所指的缓冲器中。

fwrite()函数是把buf指针所指的缓冲器中, 长度为size个字节的count个字

段写到stream指向的文件中去。

 

ftell()函数返回文件位置指示器的当前值,这个值是指示器从文件头开始算起的字节数, 返回的数为长整型数, 当返回-1时, 表明出现错误。

 

fflush()函数

调用格式为:

    int fflush(FILE *stream);

 该函数将输出缓冲区的内容实际写入文件中, 而将输入缓冲区的内容清除掉。

 feof()函数

 feof()函数检测文件位置指示器是否到达了文件结尾,若是则返回一个非0

值, 否则返回0。这个函数对二进制文件操作特别有用, 因为二进制文件中,文件结尾标志EOF也是一个合法的二进制数,只简单的检查读入字符的值来判断文件是否结束是不行的。如果那样的话, 可能会造成文件未结尾而被认为结尾, 所

以就必须有feof()函数。

 

rewind()函数用于把文件位置指示器移到文件的起点处,成功时返回0,否

则, 返回非0值。

 

C输入输出函数非标准文件函数

open()函数

int open(const char *pathname, int flags);按照flags的要求打开已存在的文件,如果文件不存在则报错。

int open(const char *pathname, int flags,mode_t mode);如果文件已经存在就直接按照flags的要求打开文件。如果文件事先不存在,则按照第三个参数的权限要求创建一个新的文件,然后再按照flags要求打开文件。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

基本模式      含义     修饰符           含   义

────────────────────────────────────────────────────────

O_RDONLY      只读     O_APPEND     文件指针指向末尾

O_WRONLY     只写     O_CREAT      文件不存在时创建文件, 属性按基本模式属性

O_RDWR        读写     O_TRUNC      若文件存在, 将其长度缩为0, 属性不变

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

open()函数打开成功, 返回值就是文件描述字的值(非负值), 否则返回-1。

write()函数和read()函数

ssize_t read(int fd, void *buf, size_t count);

 

第一个参数int fd:文件描述符

第二个参数void *buf:用户缓存或直接用户数据

第三个参数size_t count:指定读一次块的大小(以字节为单位计算)

 

ssize_t write(int fd, const void *buf,size_t count);

第一个参数int fd:文件描述符

第二个参数void *buf:用户缓存或直接用户数据

第三个参数size_t count:指定写入一次块的大小(以字节为单位计算)

close()函数

 int close(int handle);

该函数关闭文件描述字handle相连的文件。

lseek()函数

off_t lseek(int fd, off_t offset, intwhence);

定位对文件的操作位置,就像在纸上写字时调动笔尖到某处一样。

off_t offset

精确定位,负数代表从现在的位置向前移动offset字节,正数代表从当前位置向后移动offset字节,当对文件的操作位置定位在了文件的起始位置时,那么再向前移动的话没有意义,函数会报错返回。

int whence

粗定位,选项有SEEK_SET:调到文件起始位置,SEEK_CUR:调到文件当前位置,SEEK_END:调到文件末尾的位置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: