标准C I/O
挑几个常用的写:
#include <stdio.h>
标准输入/输出(STDIN/STDOUT)
int getchar(); //从STDIN(标准输入)获取并返回下一个字符 char *gets(char *str); //从STDIN(标准输入)读取字符并把它们加载到str(字符串)里,直到遇到新行(\n) int putchar( int ch ); //把ch写到STDOUT(标准输出) int puts( char *str ); //把str(字符串)写到STDOUT(标准输出) int scanf( const char *format, ... ); //根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. int printf( const char *format, ... ); //根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中.
scanf输入格式
控制字符 | 说明 |
%c | 一个单一的字符 |
%d | 一个十进制整数 |
%i | 一个整数 |
%e, %f, %g | 一个浮点数 |
%o | 一个八进制数 |
%s | 一个字符串 |
%x | 一个十六进制数 |
%p | 一个指针 |
%n | 一个等于读取字符数量的整数 |
%u | 一个无符号整数 |
%[] | 一个字符集 |
%% | 一个精度符号 |
printf输出格式
Code | 格式 |
%c | 字符 |
%d | 带符号整数 |
%i | 带符号整数 |
%e | 科学计数法, 使用小写"e" |
%E | 科学计数法, 使用大写"E" |
%f | 浮点数 |
%g | 使用%e或%f中较短的一个 |
%G | 使用%E或%f中较短的一个 |
%o | 八进制 |
%s | 一串字符 |
%u | 无符号整数 |
%x | 无符号十六进制数, 用小写字母 |
%X | 无符号十六进制数, 用大写字母 |
%p | 一个指针 |
%n | 参数应该是一个指向一个整数的指针 指向的是字符数放置的位置 |
%% | 一个'%'符号 |
文件流
FILE *fopen( const char *fname, const char *mode );//打开由fname(文件名)指定的文件, 并返回一个关联该文件的流.如果发生错误, fopen()返回NULL. mode(方式)是用于决定文件的用途(例如 用于输入,输出,等等) int fclose( FILE *stream );//关闭给出的文件流, 释放已关联到流的所有缓冲区 int feof( FILE *stream );//在到达给出的文件流的文件尾时返回一个非零值. int fread( void *buffer, size_t size, size_t num, FILE *stream );//读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. int fwrite( const void *buffer, size_t size, size_t count, FILE *stream );//从数组buffer(缓冲区)中, 写count个大小为size(大小)的对象到stream(流)指定的流.
//fgetc(),fgets(),fputc(),fputs(),fscanf(),fprintf()可参考同理上一节:标准输入/输出
fopen打开方式
Mode(方式) | 意义 | 备注 |
"r" | 打开一个用于读取的文本文件 | 文件必须存在 |
"w" | 创建一个用于写入的文本文件 | 文件存在,则清除内容;文件不存在,则自动创建文件。 |
"a" | 附加到一个文本文件 | 文件存在,则保留内容,写入的数据会被加到文件尾,即EOF符保留;文件不存在,则自动创建文件。只写 |
"rb" | 打开一个用于读取的二进制文件 | b表示二进制文件 |
"wb" | 创建一个用于写入的二进制文件 | |
"ab" | 附加到一个二进制文件 | |
"r+" | 打开一个用于读/写的文本文件 | +号表示可读可写 |
"w+" | 创建一个用于读/写的文本文件 | |
"a+" | 打开一个用于读/写的文本文件 | |
"rb+" | 打开一个用于读/写的二进制文件 | |
"wb+" | 创建一个用于读/写的二进制文件 | |
"ab+" | 打开一个用于读/写的二进制文件 |
int fgetpos( FILE *stream, fpos_t *position );//保存给出的文件流(stream)的位置指针到给出的位置变量(position)中. int fsetpos( FILE *stream, const fpos_t *position );//把给出的流的位置指针移到由position对象指定的位置.