C语言自学记要

>scanf();            //格式化输入中:“ ”“\n”“\t”作用相同

                        不能读入空格
***************************
#define N 10            //宏定义

***************************
***************************

>windows.h:
    Sleep();        //延时函数,单位毫秒;
    gotoxy;            //光标移动到(x,y),不会闪屏
    HideCursor();        //隐藏光标
***************************
void HideCursor()        //隐藏光标
{
 CONSOLE_CURSOR_INFO cursor_info = {1, 0};
 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
***************************
void gotoxy(int x, int y)    //光标移动
{
    COORD coord = {x, y};   
                /*COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。其定义为:
                typedef struct _COORD
            {
                    SHORT X;         // horizontal coordinate
                   SHORT Y;         // vertical coordinate
               } COORD;*/
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

***************************
***************************

>stdlib.h
    system("cls");      //清屏
    system("pause");    //暂停
    a=rand();              // 随机数:大小从seed到RAND_MAX
                rand()%(a-b)+a 表示产生[a,b]长度的随机数
    srand(unsigned int)      //随机种子
    exit(0);        //正常结束程序

***************************
***************************

>time.h
    time_t t;             //在人类灭亡前:类型也可为longlong,不能为long
    t=time(0);            //括号内为指针,可以%ld%u&d格式输出
    t=time(NULL);         //Windows中0和null作用相同
                  //以秒的形式记录系统的时间
    s=ctime(&t);         //可以%s格式输出
                  //将t转换为日期

***************************
***************************

>conio.h
    a=getch();          //从键盘直接得到一个字符,不用按回车(不进入缓存区)
    kbhit();               //检测键盘是否有键按下。
                    如果有键按下,则返回对应键值;否则返回零。
                         kbhit不等待键盘按键。无论有无按键都会立即返回。

***************************
***************************

>文件操作
    *打开文件
    {
        FILE *fp;                //文件结构体指针
        fp=fopen("c:\\...\\xx.txt","r");        //FILE *fopen(char *pname,char *mode)
                                fopen("a","b"),a为地址,b为操作,返回值为文件地址/NULL
        if (fp==NULL)                //文件不存在,且b不为写操作,错误退出
        {
            printf("The file <%s> can not be opened.\n",a);
            exit(0);
        }
    }
    *关闭文件
    {
        if(fclose(fp))                //int fclose(FILE *fp),返回值为0:正确关闭;EOF:非正常关闭
        {
            printf("close defeat!");
            exit(0);
        }
    }
    *1.显示文件内容/2.复制文件
    {    
        ch=fgetc(fp);                //int fgetc(FILE *fp)从fp所指文件的当前指针位置读取一个字符
        while(ch!=EOF)                //判断刚读取的字符是否是文件结束符
           {
                1.putchar(ch);            //若不是结束符,将它输出到屏幕上显示
                2.fputc(ch,fp2);         //int fputc(int ch,FILE *fp)若不是结束符,将它写入fp2所指文件
            ch=fgetc(fp);            //继续从fp所指文件中读取下一个字符
            }                     //完成将fp所指文件的内容输出到屏幕上显示
    }

    *打开文件的使用方式
    “r”——只读,以只读方式打开已存在文件。
    “w”——只写,以只写方式新建文本文件,若存在同名文件则刷新已有文件。
    “a”——追加,以只读方式打开文已存在本文件,数据追加到末尾。
    “r+”——读写,为读/写方式打开已存在文本文件。
    “w+”——读写,以读/写方式新建文本文件,若存在同名文件则刷新已有文件。
    “a+”——读写,以读/写方式打开已存在文本文件,数据追加到末尾。

    FILE *fopen(char *pname,char *mode)
    int fclose(FILE *fp)
    int fgetc(FILE *fp)
    int fputc(int ch,FILE *fp)

      char *fgets(char *str,int n,FILE *fp)        //从由fp指出的文件中读取n-1个字符,并把它们存放到由str指出的字符数组中去,
                            最后加上一个字符串结束符'\0'。

    int fputs(char *str,FILE *fp)            //正常返回: 写入文件的字符个数,即字符串的长度。
                              非正常返回:返回一个NULL值,此时应当用feof()或ferror()函数来判别是读取到了文件尾,
                            还是发生了错误。例如,要往一个"读打开" 文件中写字符串时,
                            会发生错误而返回一个NULL值。

    int fprintf(FILE *fp,char *format,arg_list)    //将变量表列(arg_list)中的数据,按照format指出的格式,写入由fp指定的文件。

    Int fscanf(FILE *fp, char *format, 地址列表)    //按照格式控制字符串format所给定的输入格式,把从fp所指向的文件当期那读写位置起读入的                            数据,按地址列表存入指定的存储单元。从文件读入数据后,文件读写位置向后做相应的移动。

    int fread(void *buffer,unsigned sife,unsigned count,FILE *fp)
                            //从由fp指定的文件中,按二进制形式将sife*count个数据读到由buffer指出的数据区中。
                            buffer:这是一个void型指针,指出要将读入数据存放在其中的存储区首地址。
                            sife:指出一个数据块的字节数,即一个数据块的大小尺寸。
                            count:指出一次读入多少个数据块(sife)。
                            返回值:正常返回:实际读取数据块的个数,即count。
                                  异常返回:如果文件中剩下的数据块个数少于参数中count指出的个数,
                            或者发生了错误,返回0值。此时可以用feof()和ferror()来判定到底出现了什么情况。

    int fwrite(void *buffer,unsigned sife,unsigned count,FILE *fp)
                            //按二进制形式,将由buffer指定的数据缓冲区内的sife*count个数据写入由fp指定的文件中去    
                            buffer:这是一个void型指针,指出要将其中数据输出到文件的缓冲区首地址。
                            sife:指出一个数据块的字节数,即一个数据块的大小尺寸。
                            count:一次输出多少个数据块(sife)。
                            返回值:正常返回:实际输出数据块的个数,即count;
                                异常返回:返回0值,表示输出结束或发生了错误。

    int feof(FILE *fp)                //该函数用来判断文件是否结束。返回值0:表示文件未结束;1:表示文件结束。

    long ftell(FILE *fp)                //取得由fp指定文件的当前读/写位置,该位置值用相对于文件开头的位移量来表示。
                                返回值:正常返回:位移量(这是个长整数);异常返回:-1,表示出错。

    void rewind(FILE *fp)               //使由文件指针fp指定的文件的位置指针重新指向文件的开头位置。

    int fseek(FILE *fp,long offset(L?),int base)    //使文件指针fp移到基于base的相对位置offset处。
                              offset:相对base的字节位移量。这是个长整数,用以支持大于64KB的文件。
                               base:文件位置指针移动的基准位置,是计算文件位置指针位移的基点。
                            参数:SEEK_SET:文件开头(0);SEEK_CUR:当前位置(1);SEEK_END:文件结尾(2)
                            返回值:正常返回:当前指针位置;异常返回:-1,表示定位操作出错。

     fflush( FILE *stream )                //刷新缓冲区
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值