#include <stdio.h>
int fprintf( FILE *stream, const char *format, ... );
类似上两函数,只是该函数用于文件操作
#include <stdio.h>
int scanf( const char *format, ... );
函数以给定字符串的格式从标准输入流中读入数据(stdin)
将数据保存在给定参数中,它忽略空格(tab,spaces,etc)
跳过不符合的字符,返回被赋值的变量数,若出错返回EOF
控制符如下:
%c a single character
%d a decimal integer
%i an integer
%e, %f, %g a floating-point number
%o an octal number
%s a string
%x a hexadecimal number
%p a pointer
%n an integer equal to the number of characters read so far
%u an unsigned integer
%[] a set of characters
%% a percent sign
scanf()会将输入的数据根据参数format字符串来转换并格式化数据。Scanf()格式转换的一般形式如下
%[*][size][l][h]type
以中括号括起来的参数为选择性参数,而%与type则是必要的。
* 代表该对应的参数数据忽略不保存。
size 为允许参数输入的数据长度。 [Page]
l 输入的数据数值以long int 或double型保存。
h 输入的数据数值以short int 型保存。
[] 读取数据但只允许括号内的字符。出现其他字符则终止。如[a-z]。
[^] 读取数据但不允许中括号的^符号后的字符出现,如[^0-9].
返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。
#include <stdio.h>
int sscanf( const char *buffer, const char *format, ... );
函数用法同scanf,只是该函数的数据是从buffer中读入的
#include <stdio.h>
int fscanf( FILE *stream, const char *format, ... );
函数类似上函数,只是该函数用于文件操作
#include <stdio.h>
char *gets( char *str );
从标准输入(stdin)中读入一行数据或是遇到错误,并且在最后加入’ ’值
#include <stdio.h>
char *fgets( char *str, int num, FILE *stream );
类似上函数,该函数用与文件操作,返回读到的字符串,如果有错返回EOF,参数num为最多能读的数据(num-1,最后一个为null值)
若连续用fgets函数读文件中的数据,则应用fseek函数移动文件指针到下一行初(fseek(file, 2, SEEK_CUR)
在windows中,换行为两个字符,即回车换行
#include <stdio.h>
int getchar( void );
从stdin中读入一个字符返回,注意返回为int型
#include <stdio.h>
int fgetc( FILE *stream );
返回文件流中的下一个字符,返回EOF如果读到文件末尾或发生错误
#include <stdio.h>
int getc( FILE *stream );
同上一个函数
#include <stdio.h>
int putchar( int ch );
在stdin中写入一个字符,返回EOF如果出错,否则返回写入的字符
#include <stdio.h>
int putc( int ch, FILE *stream );
在文件流中写入一个字符,返回EOF如果出错,否则返回写入的字符
#include <stdio.h>
int puts( char *str );
在文件中写入str字符,如果出错返回EOF值,否则返回非负数值 [Page]
#include <stdio.h>
int fread( void *buffer, size_t size, size_t num, FILE *stream );
读入文件中的数据到buffer,总共大小为num,size表明读入类型的字节大小,返回值为读入的字节数
#include <stdio.h>
int fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
函数将buffer中的内容写入文件中,总共写入cout个size大小的数据,返回写入数据大小的字节数
#include <stdio.h>
int feof( FILE *stream );
如果文件没有读到末尾,返回0,否则返回非0
#include <stdio.h>
int ferror( FILE *stream );
若文件没有错误发生,返回0,否则返回非0
#include <stdio.h>
void perror( const char *str );
打印字符串str和errno相关的错误信息
#include <stdio.h>
void clearerr( FILE *stream );
重新设置stream的错误标识和EOF指示器(错误标识不会自动清除,除非调用clearerr, fseek, fsetpos, or rewind 等函数)
#include <stdio.h>
int fclose( FILE *stream );
函数关闭stream文件,释放所有和stream相关的内存资源
#include <stdio.h>
FILE *fopen( const char *fname, const char *mode );
函数fname指定的文件,若文件不存在,则新建该文件,mode表示打开文件的模式,若出错,返回NULL
/"r/" Open a text file for reading
/"w/" Create a text file for writing
/"a/" Append to a text file
/"rb/" Open a binary file for reading
/"wb/" Create a binary file for writing
/"ab/" Append to a binary file
/"r /" Open a text file for read/write
/"w /" Create a text file for read/write [Page]
/"a /" Open a text file for read/write
/"rb /" Open a binary file for read/write
/"wb /" Create a binary file for read/write
/"ab /" Open a binary file for read/write
#include <stdio.h>
int fgetpos( FILE *stream, fpos_t *position );
函数将给定文件的指针存入position变量中,函数成功返回0,否则返回非0
fpos_t类型:long integer, __int64, or structure, depending on the target platform
#include <stdio.h>
int fsetpos( FILE *stream, const fpos_t *position );
函数用于设定文件指针,其他规则同fgetpos函数
#include <stdio.h>
FILE *freopen( const char *fname, const char *mode, FILE *stream );
函数重新定向stream的文件流到指定文件的文件流,mode用于指定文件的访问方式
函数返回NULL值如果出错,否则返回新文件的文件指针
注:可用该函数打开一个文件,并一stdout,stdin做参数,此时可以用在控制台上的函数操作文件
但是有一个问题需要解决,怎样把stdout,stdin的指针重新弄回来,以使控制台的输入输出还可用
因为该函数执行后会将原来的文件流(stream)指针关闭。在VC中可以通过结合dup和fdopen函数来实现
但是在C语言函数库中还不知道用什么函数可以去实现
#include <stdio.h>
int fseek( FILE *stream, long offset, int origin );
函数设置文件流stream指针到给定的偏移量,偏移量与origin相对而言
origin可取值:
SEEK_SET Seek from the start of the file
SEEK_CUR Seek from the current location
SEEK_END Seek from the end of the file
函数返回0为成功,非0为失败,该函数可以清除EOF标记 [Page]
#include <stdio.h>
long ftell( FILE *stream );
函数返回指定文件的当前指针的位置,若出错返回-1
#include <stdio.h>
int remove( const char *fname );
函数关闭fname名字所指定文件流,返回0为成功执行函数,非0为失败
#include <stdio.h>
int rename( const char *oldfname, const char *newfname );
函数更改文件的名字,返回0为成功,非0为失败
#include <stdio.h>
void rewind( FILE *stream );
函数将指定文件的指针移动到文件的开始处,并清除文件的EOF标识
#include <stdio.h>
void setbuf( FILE *stream, char *buffer );
函数设置文件的缓存区buffer,若buffer为NULL值,则文件写入没有缓冲
#include <stdio.h>
int setvbuf( FILE *stream, char *buffer, int mode, size_t size );
函数用特定的模式设置文件的缓冲区及大小
mode可取值:
_IOFBF, which indicates full buffering
_IOLBF, which means line buffering
_IONBF, which means no buffering
#include <stdio.h>
FILE *tmpfile( void );
函数打开一个临时文件并返回这个临时文件的指针,失败则返回NULL
#include <stdio.h>
char *tmpnam( char *name );
函数创建一个临时文件的文件名,保存在name中
#include <stdio.h>
int ungetc( int ch, FILE *stream );
函数将ch字符放回stream文件中
#include <stdarg.h>
#include <stdio.h>
int vprintf( char *format, va_list arg_ptr );
int vfprintf( FILE *stream, const char *format, va_list arg_ptr );
int vsprintf( char *buffer, char *format, va_list arg_ptr ); [Page]
These functions are very much like printf(), fprintf(), and sprintf().
The difference is that the argument list is a pointer to a list of arguments.
va_list is defined in stdarg.h, and is also used by (Other Standard C Functions)
va_arg(). For example:
void error( char *fmt, ... ) {
va_list args;
va_start( args, fmt );
fprintf( stderr, /"Error: /" );
vfprintf( stderr, fmt, args );
fprintf( stderr, /"/n/" );
va_end( args );
exit( 1 );
}
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/**//*void main()
{
char setTest[10];
scanf(/"%[a-z]/", setTest);
printf(/"%s /", setTest);
}*/
/**//*void main( void )
{
int c;
//Create an error by writing to standard input.
putc( ’c’, stdin );
if( ferror( stdin ) )
{
perror( /"Write error/" );
clearerr( stdin );
}
// See if read causes an error.
printf( /"Will input cause an error? /" );
c = getc( stdin );
if( ferror( stdin ) )
{
perror( /"Read error/" );
clearerr( stdin );
}
}*/
/**//*void main()
{
char read[100];
FILE *orig_stdout = (FILE*)malloc(sizeof(FILE)); [Page]
memcpy(orig_stdout, stdout, sizeof(FILE));
FILE *filew = freopen(/"test.txt/", /"w/", stdout);
//freopen(/"test.txt/", /"w/", stdout);
if(filew == stdout)
printf(/"equal/");
printf(/"We can write datum in file test.txt use printf function with the use of freopen/");
fclose(filew);
/* memcpy(stdout, orig_stdout, sizeof(FILE));
FILE *filer = freopen(/"test.txt/", /"r/", stdin);
//freopen(/"test.txt/", /"r/", stdin);
gets(read);
fclose(filer);
printf(/"%s/", read);
printf(/"%c/", read[0]);
printf(/"jd;salkjf/");
*/
// rename(/"test.txt/", /"newname.txt/");
/
http://humanbeng.blog.163.com/blog/static/9593240120107241134477/
相关推荐
1. 输入/输出(I/O)函数:如`printf`、`scanf`,用于格式化输出和输入数据,是C语言中最基础的IO操作。 2. 字符处理函数:如`strlen`计算字符串长度,`strcpy`、`strcat`用于字符串的复制和连接。 3. 数学函数:如`...
### C语言常用库函数知识点详解 #### 一、文件操作相关库函数 ##### 1. `absread()`:磁盘扇区读取函数 - **功能**:此函数用于从指定磁盘驱动器中读取特定数量的扇区数据到缓冲区。 - **参数**: - `int drive`...
这个压缩包包含的"C语言标准函数库源码"是一份宝贵的资源,它涵盖了C语言的全部或几乎全部标准库函数,对于学习C语言和深入理解其工作原理极其有价值。 首先,我们要了解C语言标准库的基本构成。它主要包括以下几个...
在深入探讨C语言标准库函数的具体细节之前,首先需要明确C标准库的作用和重要性。C标准库为C语言的开发者提供了一套丰富的预定义函数,这些函数涵盖了错误处理、输入输出操作、字符和字符串处理、数学计算、内存操作...
1. **输入/输出函数**:如`printf`用于格式化输出,`scanf`用于格式化输入,它们是C语言中最常用的IO函数,用于在终端与用户进行交互。 2. **字符串处理函数**:`strlen`计算字符串长度,`strcpy`复制字符串,`...
C语言库函数是C编程的基础,它提供了丰富的功能,使得程序员可以进行各种复杂的操作,如字符串处理、数学计算、输入/输出等。本资源“c语言库函数的源码 强烈推荐”提供了C标准库glibc的一个版本——glibc-2.9,这是...
### C语言标准库函数知识点详解 #### fgetchar() **函数名:** fgetchar **功能:** 从标准输入流中读取一个字符 **用法:** `int fgetchar(void);` - **函数说明**: `fgetchar` 函数用于从标准输入流中读取一个...
C语言是一种广泛使用的计算机编程语言,它为程序员提供了丰富的标准库函数,以便于进行各种常见的操作和处理。从提供的文件内容来看,包含了C语言在DOS环境下的一些常见库函数,以及它们的用途和简单的参数说明。 ...
本文将详细介绍一些常用的C语言IO库函数及其应用场景。 #### 二、具体函数详解 ##### 1. clearerr函数 **函数原型:** ```c void clearerr(FILE *stream); ``` **功能描述:** `clearerr()`函数用于重置与指定文件...
stdio.h库是C语言中最基础的输入输出库,包含了如printf()和scanf()等常用的IO函数。printf()用于格式化输出,可以处理整型、浮点型、字符串等各种数据类型;而scanf()则用于从标准输入读取数据,与printf()相配合,...
根据给定的文件信息,以下将详细解析C语言库函数中的几个关键知识点: ### 1. abort函数 `void abort(void);` `abort`函数用于立即终止程序的执行,通常在遇到不可恢复的错误时调用。在调用`abort`后,程序将不会...
根据给定的文件信息,以下是对C语言库函数的一些关键知识点的详细解析: ### 函数名:abort **功能:** 异常终止一个进程。 **用法:** `void abort(void);` 此函数用于立即终止当前正在运行的进程,通常在遇到...
C语言库函数(O类字母到W类字母)如:下例 函数名: open 功 能: 打开一个文件用于读或写 用 法: int open(char *pathname, int access[, int permiss]); 程序例: #include <string.h> #include <stdio.h> #...
- `printf` 和 `scanf`:这两个函数分别用于格式化输出和输入,是C语言中最常用的IO函数。 - `puts` 和 `getchar`:前者用于输出字符串,后者用于获取单个字符输入。 2. **内存管理函数**: - `malloc` 和 `free...
在C语言中,库函数是预编译的代码集合,为程序员提供了许多便捷的功能,以完成常见的任务。这里我们讨论一些以A、W开头的C语言库函数。 首先,我们来看`abort()`函数,它是标准C库中的一个函数,位于`stdlib.h`...
C语言库函数是C编程中的核心组成部分,它们提供了一系列预定义的函数,使得开发者能够方便地执行各种操作,如输入输出、字符串处理、数学运算等。以下是对标题和描述中涉及知识点的详细解释: 1. **C标准库**: C...
根据给定的文件信息,以下是对C语言库函数的一些关键知识点的详细解析: ### 函数:`abort` #### 功能: 异常终止一个进程。 #### 用法: ```c void abort(void); ``` #### 示例代码: ```c #include #include ...