精华内容
下载资源
问答
  • 2.关于点赞数目的思考及简单实现--基于Solr函数查询 实现思路: ...将话题点赞的人的信息存在...使用查询函数来判断话题中是否包含了用户的信息(Id),是的话既为true,否则为false 查询实例如图: http:
    2.关于点赞数目的思考及简单实现--基于Solr函数查询
    实现思路:
    将话题点赞的人的信息存在Solr中(如Id)
    当查询时给定查询者的信息(如Id)
    使用Solr内置的查询函数,在fl中,新增一个函数返回字段,设置名称为isLike
    使用查询函数来判断话题中是否包含了用户的信息(Id),是的话既为true,否则为false
    查询实例如图:
    http://localhost:80/solr/product/select?q=cateName%3A%E4%BF%9D%E5%AF%86%E6%9F%9C&fl=cateName%2C+isLike%3Aexists(query(%7B!query+defType%3Dfunc+v%3D%24q1%7D))&wt=json&indent=true&q1={!field%20f=cateName}GPS%E5%AE%9A%E4%BD%8D%E5%99%A8


    这里存在一个问题,当话题是热门话题时,点赞的用户肯定非常多,那么信息特别多该怎么去处理呢???
    目前的方案是新建一个点赞的索引库来处理这件事.
    展开全文
  • 前面我们聊过怎样将Excel包含某字符的单元格填充颜色,这边我们用另外一种方法来实现:excel判断单元格包含指定内容函数  选中需要显示结果的单元格,假设我们要判断第一行第一列的单元格A1是否含有“美女”一词...

      前面我们聊过怎样将Excel包含某字符的单元格填充颜色,这边我们用另外一种方法来实现:excel判断单元格包含指定内容的函数

      选中需要显示结果的单元格,假设我们要判断第一行第一列的单元格A1是否含有“美女”一词,那我们在第一行第二列的单元格B1输入“=IF(COUNTIF(A1,"*美女*"),"1","0")”,如果含有"美女"一词就显示“1”,反之则显示“0”

    判断单元格包含指定内容的函数

      当然你可以做一些改造,比如判断单元格包含“景甜”,函数为“=IF(COUNTIF(A1,"*景甜*"),"女神!美","不感兴趣")”,如果含“景甜”这位人物则显示“女神!美”,如果不包含则显示“不感兴趣”...

      发挥你的想象力,让生活充满乐趣!

      判断单元格包含指定内容的excel函数你学会了吗?简单不?赶紧去试一下吧!

    展开全文
  • 最近在看数据库视频-第六章第四节“分组”内容的时候遇到了一个问题提示:该列没有包含在聚合函数或group by 子句中。看到这个问题后我的思考是:问题一:什么是聚合函数?聚合函数是对一组值执行计算,并返回单个值...
    最近在看数据库视频-第六章第四节“分组”内容的时候遇到了一个问题
    提示:该列没有包含在聚合函数或group by 子句中。
    看到这个问题后我的思考是:
    问题一:什么是聚合函数?
    聚合函数是对一组值执行计算,并返回单个值。除了count外,聚合函数都会忽略Null值。聚合函数经常与select语句的GROUP BY子句一起使用。
    所有聚合函数均为确定性函数。
    问题二:where的作用?
    where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据。
    问题三:解决办法?
    “旧员工信息表.学号”没有包含在聚合函数内,那就不查询整个数据表,改为表内特定字段的查询。
    问题解决
    我这个应该不是从根本上解决了问题,感觉只是跳过那些不符合条件的列,还望各位大神可以给予指点^_^
    展开全文
  • 一般来说,它用于对文件进行操作的函数的参数或者返回值等等。它在头文件中的定义如下(成员后面的注释援引自百度知道,准确与否我查找资料未果,到后来专门找个时间将FILE结构体解读一下): typedef struct _iobuf {...

    结构体:

    FILE 

      在stdio.h头文件中定义的结构。一般来说,它用于对文件进行操作的函数的参数或者返回值等等。它在头文件中的定义如下(成员后面的注释援引自百度知道,准确与否我查找资料未果,到后来专门找个时间将FILE结构体解读一下):
    typedef struct _iobuf
    {
        char*    _ptr;       // 文件输入的下一个位置
        int    _cnt;           // 当前缓冲区的相对位置
        char*    _base;      // 指基础位置(即是文件的起始位置)
        int    _flag;          // 文件状态标志
        int    _file;          // 文件的有效性验证
        int    _charbuf;       // 检查缓冲区状况,如果无缓冲区则不读取
        int    _bufsiz;        // 缓冲区大小
        char*    _tmpfname;  // 临时文件名
    } FILE;




    基本类型:

    fpos_t 

      一种类型,包含的指定在一个文件中的位置的信息(Object containing information to specify a position within a file)。是一种基本类型的别名,在MSVCRT下为long long,其它环境下为long。可见其定义:
    #ifdef __MSVCRT__
    typedef long long fpos_t;
    #else
    typedef long    fpos_t;
    #endif


    宏常量 :

    EOF 

      它作为cstdio头文件里一些函数的失败指示返回值,或者当执行读操作时文件尾到达时产生了错误。
    #define EOF (-1)




    FILENAME_MAX 

      文件名的最大长度。这取决于操作系统,如果操作系统对此未作规定,则它将被设置为能装下任何文件名的大小。
    #define FILENAME_MAX (260)




    TMP_MAX 

      临时文件最大个数。
    #define TMP_MAX 32767




    内置对象 :

    stderr 

      FILE* stderr;
      标准错误流。标准错误流是错误信息和其它诊断警告的默认目的地。与stdout一样,它通常也被定位到标准控制台输出设备。stderr可以被用于任何期望一个输出流作为其中一个参数的函数比如fputs或fprintf等。虽然通常stdout和stderr都被关联到同样的控制台输出,程序为了区分发送到stdout与stderr的内容会将它们其中之一重定向。例如,常见的如果期望错误显示在控制台屏幕上时会将标准输出重定向到一个文件。在程序中也可以将stderr通过freopen函数重定向到其它地方。


    stdin 

        FILE* stdin;
      标准输入流。标准输入流是程序的默认数据来源。它通常被重定向到标准控制台的输入设备(通常是键盘)。stdin可以被用于任何期望一个输入流作为其一个参数的函数,比如fgets或fscanf等。虽然通常认为stdin的数据来源是键盘是安全的,但是记住即使是在纯控制台系统中也可能不是这样的,因为stdin能被重定向到操作系统级。例如,许多系统,包括DOS/Windows和大多数的UNIX外壳支持如下的命令语法:myapplication < example.txt 来使用example.txt的内容来作为myapplication的数据来源。当然在程序中也可以使用freopen函数来重定向stdin到其它来源。


    stdout 

      FILE* stdout;
      标准输出流。标准输出流是程序的默认纯输出目的地。它通常被重定向到标准控制台输出设备(通常是屏幕)。stdout可以被用于任何期望一个输出流作为其一个参数的函数,比如fputs或fprintf。虽然通常认为stdout的目的地是屏幕是安全的,但是记住即使是在纯控制台系统中也可能不是这样的,因为stdout能被重定向到操作系统级别。例如,许多操作系统,包括DOS/Windows和大多数的UNIX外壳支持如下的命令语法:myapplication > example.txt 来重定向myapplication的输出到example.txt而不是屏幕。当然在程序中也可以使用freopen函数来重定向stdout到其它地方。




    函数:

    printf 

    函数功能 :打印已格式化字符串到标准输出流。
    函数用法 :int printf(const char* format, ...),其中format相关请参考上文中fprintf函数。返回所写的总字符数,失败则返回负数。
    参考例子 :
    #include <stdio.h>
                                                           
    int main()
    {
      char c='a';
      int i=97;
      printf("%c,%d\n",c,c);
      printf("%c,%d\n",i,i);
      return 0;
    }




    scanf 

    函数功能 :从标准输入流读入指定格式的数据。参数一指定格式与附加参数个数与格式。
    函数用法 :int scanf(const char* format, ...),其中format的相关内容参见fscanf函数的讲解。返回成功读取的项目数,即附加参数个数,这个数字可能比期望的项目少,匹配失败时甚至可能是零。如果在任何数据被成功读取之前出现输入失败,返回EOF。
    参考例子 :
    int main()
    {
      int a,b,c;
      scanf("%d%d%d",&a,&b,&c);
      printf("%d,%d,%d\n",a,b,c);
      return 0;
    }
    



    sprintf 

    函数功能 :将格式化的数据写到字符串。将format参数指定的数据序列(一个C风格字符串)写入到str。该函数的行为与printf类似,但它的结果是写到一个字符串而不是stdout。传过来的接受字符串必须有足够大小装纳。
    函数用法 :int sprintf(char *str, const char *format, ...),str是指向char数组的指针,format相关请参见fprintf函数。成功则返回写入总字符数,这个数字不包括最后自动添加的空字符。出错则返回负数。
    参考例子 ;
    int main()
    {
      int a,b,c;l
      char fileName[50+1];
      sprintf("%d,%d,%d\n",a,b,c);
      return 0;
    }


    sscanf 

      功能 :从字符串中读取指定格式数据。从指定字符串中读取数据并存储到附加参数指定的位置。
      用法 :int sscanf(const char *str, const char* format, ...),其中format的相关内容参见fscanf函数的讲解。返回成功读取的项目数,即附加参数个数,这个数字可能比期望的少,匹配失败时甚至可能是零。如果在任何数据被成功读取之前出现输入失败,返回EOF。


    fopen 

    函数功能 :以指定的模式打开指定名字的文件,将其与一个可以对文件进行操作的流进行关联并返回FILE*。打开模式决定了流能对文件进行哪些操作。
    函数用法 :fopen(const char* filename, const char* mode),返回FILE*。
    mode可以为"r","w","a","+","b"几种模式的组合,常见的组合如下:
      "r"   打开文件,并读取文件内容,若文件不存在,将会发生错误。
      "w"   打开文件,并清除其内容,重新准备写入数据,若文件不存在,则建立新文件。
      "a"   若文件已存在,则新写入的数据直接从文件末端接入。
      "r+"  打开文件,可提供读/写,若文件不存在,则发生错误。
      "w+"  打开文件,可提供读/写,若文件已存在,则清除其内容。
      "a+"  打开文件,可提供读/写,但写入数据仅能接在源文件之后。
      "rb"  打开二进制文件,并读取文件内容,若文件不存在将发生错误。
      "wb"  打开二进制文件,并清除其内容,重新准备写入数据,若文件不存在,则建立新文件。
      "ab"  打开二进制文件,若文件已存在,则新写入的数据直接从文件末端接入。
      "r+b" 打开二进制文件,可提供读/写,若文件不存在,则发生错误。
      "w+b" 打开二进制文件,可提供读/写,若文件已存在,则清除其内容。
      "a+b" 打开二进制文件,可提供读/写,但写入数据仅能接在源文件之后。
    参考例子:
    #include <stdlib.h>
    #include <stdio.h>
    #include <dir.h>
    int main()
    {
        char *s;
        char drive[MAXDRIVE];
        char dir[MAXDIR];
        char file[MAXFILE];
        char ext[MAXEXT];
        int flags;
        s=getenv("COMSPEC");
        flags=fnsplit(s,drive,dir,file,ext);
        printf("Command processor info:");
        if(flags&DRIVE)
            printf("\tdrive: %s",drive);
        if(flags&DIRECTORY)
            printf("\tdirectory: %s",dir);
        if(flags&FILENAME)
            printf("\tfile: %s",file);
        if(flags&EXTENSION)
            printf("\textension: %s",ext);
        return 0;
    }
    



        

    fprintf 

    函数功能 :将格式化过的输出写到流。将数据序列以格式参数指定的格式化之后见到指定流。在格式参数之后函数还需要至少在格式参数里指定的那么多个参数。
    函数用法 :fprint(FILE *pFile, const char *format, ...)。如果成功,写入字符总数将被作为int型返回,否则将返回负值。其中format参数中指定附加参数时格式为:
      %[flags][width][.precision][length]specifier
      其中specifier是最重要的一个,它定义参数类型和说明,可能的值为:
      "c"-->字符。
      "d OR i"-->带符号十进制整数。
      "e"-->用e表示的科学计数法。
      "E"用E表示的科学计数法,"f"-->十进制浮点数。
      "g"-->use the shorter of %E or %f。
      "G"-->use the shorter of %E or %f。
      "o"-->八进制,"s"-->字符串。
      "u"-->无符号十进制整数。
      "x"-->无符号十六进制整数。
      "X"-->无符号十六进制整数(使用大写字母)。
      "p"-->指针地址。
      "n"-->无输出,该参数必须是一个带符号整型。
      "%"-->%%表示转义,将输出%。
      flags的可能值:
      "-"-->以给定字符宽度对齐。
      "+"-->在结果前面都加上(+或-),默认情况下,只有负数才加上"-"。
      (space)-->如果没有符号将被打印,则一个空格将被插入到值之前。
      "#"-->与o,x或X一起使用时指定非零值以0,0x或0X开始;与e,E和f一起使用时,将强制输出一个小数点即使后面没有数字;与g或G一起使用时与和e,E一样但是最后的零将不会被去掉。
      "0"-->左边用0而不是空格填充。
      width的可能值:
        (number)-->最小打印的数字个数,若值的位数不够则用空格填充,若值超过也不会被截断。
      "*"-->宽度不指定,但在成为附加整形参数之前参数必须已经被格式化过。
      .precision的可能值:
      .number-->对d,i,o,u,x,X来说,precision指定需要被写的最少数字个数。如果值比它短,值将在前面用0填充,值过大将不会被截断,number为0表示当值为0时将没胡输出;对e,E和f来说,number指定小数点后位数;对g,G来说,将会是最大有效数字;对s来说,将会是输出的最大字符数;对c来说这没有影响。如果没有precision被指定,缺省为1。
      .*-->精度在格式化字符串中未指定,附加整型参数之前必须已经被格式化过。
      length的可能值:
      "h"-->参数被转换为short int或unsigned short int,只适用于i,d,o,u,x和X。
      "l"-->参数被转换为long int或unsigned long int当与i,d,o,u,x,X一起使用时,宽字符或宽字符串当与c,s一起使用时。
      "L"-->参数被转换为long double当与e,E,f,g,G一起时。
    参考例子 :
    #include <stdio.h>
    int main()
    {
        FILE *in,*out;
        if ((in=fopen("AUTOEXEC.BAT","rt"))==NULL)
        {
            fprintf(stderr,"Cannot open input file.");
            return 1;
        }
        if ((out=fopen("AUTOEXEC.BAK","wt"))==NULL)
        {
            fprintf(stderr,"Cannot open output file.");
            return 1;
        }
        while(!feof(in))
            fputc(fgetc(in),out);
        fclose(in);
        fclose(out);
        return 0;
    }
    





    fclose     

    函数功能 :关闭与流关联的文件并取消关联。与这个流相关联的所有内部缓冲区将被刷新;缓冲区中还没有写入的内容及没有读的内容都将被丢弃。即使函数调用失败,这个流将与文件失去了关联。    
    函数用法 :fclose(FILE *pFile),返回int值,如果函数执行成功,将返回0,否则返回EOF
    参考例子:
    #include <string.h>
    #include <stdio.h>
    int main()
    {
        FILE *fp;
        char buf[11]="0123456789";
        fp=fopen("test.txt","w");
        fwrite(&buf,strlen(buf),1,fp);
        fclose(fp);
        return 0;
    }




    vfprintf 

    函数功能 :将格式化的数据写到指定流中。将使用参数列表中的值来展开的格式字符串中的内容写到指定流中。这个函数的行为与fprintf类似,只是参数列表是通过va_list来传递的而不是一连串的参数,这在参数列表在调用函数过程中通过它自身传递时特别有用。vfprintf不会自动调用va_end宏。
    函数用法 :int vfprintf(FILE *pFile, const char* format, va_list arg),format参数的相关信息请参见fprintf函数。arg是一个代表变量参数列表的对象,它必须已经在头文件cstdarg里定义的va_start宏里初始化过。成功则返回总共写入的字符数,失败则返回一个负数。
    参考例子 :
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdarg.h>
    #include <fcntl.h>
    void End_Log(char *fmt,...)
    {
    va_list arg_list;
    FILE *fp;
    
    if(fp=fopen("test.txt","w+"))==NULL
    return;
    va_start(arg_list,fmt);
    vfprintf(fp,fmt,arg_list);
    va_end(arg_list);
    fclose(fp);
    return;
    }




    vprintf 

    函数功能 :将已格式化的变量参数列表打印到stdout。向stdout写入参数传递的内容。与vfprintf类似,只是流为标准输出流。
    函数用法 :int vprintf(const char* format, va_list arg),format的相关内容请参见fprintf函数。成功则返回总共写入的字符数,失败则返回一个负数。






    vsprintf 

    函数功能 :将已格式化的变量参数列表打印到字符串。向一个字符串写入参数传递的内容,与vfprintf类似,只是输出对象为一个字符串。
    函数用法 :int vsprintf(char* str, const char* format, va_list arg),str即为将存储的对象字符串,format的相关内容请参见fprintf函数。成功则返回总共写入的字符数,失败则返回一个负数。。




    feof 

    函数功能 :检查与文件相关联的流的EOF指示器的状态。
    函数用法 :feof(FILE *pFile),返回int值,如果EOF置位,返回非零值,否则返回零值。
    参考例子 :
    #include <stdio.h>
    int main()
    {
        FILE *stream;
        stream=fopen("test.txt","r");
        fgetc(stream);
        if (feof(stream))
            printf("We have reached end-of-file");
        fclose(stream);
        return 0;
    }
    





    ferror 

    函数功能 :检查与文件相关联的流的error指示器的状态,通常该指示器是因为对已经产生错误的流的过早操作。 
    函数用法 :ferror(FILE *pFile),返回int值,如果error指示器置位,返回非零值,否则返回零值。
    参考例子:
    #include <stdio.h>
    int main()
    {
        FILE *stream;
        stream=fopen("DUMMY.dat","w");
        (void) getc(stream);
        if (ferror(stream))
        {
            printf("Error reading from DUMMY.dat")
            clearerr(stream);
        }
        fclose(stream);
        return 0;
    }




    clearerr

    函数功能 :重置流的error与EOF指示器。当一个使用流的功能因为error或者EOF而失败时,一个或多个内部指示器会被设置,这些指示器会一直有效直到调用clearerr、rewind、fseek或fsetpos为止。比如说当使用fopen打开一个文件而只给"r"权限,当试图对它进行"w"操作时就会产生错误,这时需要使用本函数来重置指示器信息。   
    函数用法 :clearerr(FILE *pFile),返回void。
    参考例子 :
    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    int main()
    {
        int gdriver=DETECT,gmode,errorcode;
        int midx,midy;
        initgraph(&gdriver,&gmode,);
        errorcode=graphresult();
        if (errorcode!=grOk)
        {
            printf("Graphics error: %s",grapherrormsg(errorcode));
            printf("Press any key to halt:");
            getch();
            exit(1);
        }
        midx=getmaxx()/2;
        midy=getmaxy()/2;
        setcolor(getmaxcolor());
        settextjustify(CENTER_TEXT,CENTER_TEXT);
        outtextxy(midx,midy,"press any key to clear the screen:");
        getch();
        cleardevice();
        outtextxy(midx,midy,"press any key to quit:");
        getch();
        closegraph();
        return 0;
    }






    fflush 

    功能 :刷新流。如果给定的流打开是为了写操作并且上一个I/O操作是输出,在输出缓冲区中的任何不成文的数据将被写到文件。如果给定的流打开是为了读操作并且上一个操作是输入操作,行为取决于具体的库实现。在某些实现中这次导致输入缓冲区被清除,但是这不是标准的行为。如果参数是一个空指针,所有打开的文件将被刷新。流在这个调用之后将保持打开。如果一个文件因为对fclose的调用或者程序终止而关闭,所有与其有关的缓冲区都将被自动刷新。
    用法 :fflush(FILE *pFile),返回int型值,零值表示成功,若发生错误将返回EOF且错误指示器将被设置。
    参考例子:
    #include <string.h>
    #include <stdio.h>
    #include <conio.h>
    #include <io.h>
    void flush(FILE *stream);
    int main()
    {
        FILE *stream;
        char msg[]="This is a test";
        stream=fopen("DUMMY.FIL","w");
        fwrite(msg,strlen(msg),1,stream);
        clrscr();
        printf("Press any key to flush DUMMY.FIL:");
        getch();
        flush(stream);
        printf("File was flushed,Press any key to quit:");
        getch();
       return 0;
    }
    void flush(FILE *stream)
    {
        int duphandle;
        fflush(stream);
        duphandle=dup(fileno(stream));
        close(duphandle);
    }






    fgetc 

    函数功能 :从流中获取字符。返回指定流的内部文件位置指示器当前指向的字符。内部文件位置指示器向前移动一个字符指向下一个字符。
    函数用法 :fgetc(FILE *pFile),返回int型值,正常情况下返回该字符的ASCII值,如果出错或者到达EOF,则返回EOF并且设置error和EOF指示器。
    参考例子 :
    #include <string.h>
    #include <stdio.h>
    #include <conio.h>
    int main()
    {
        FILE *stream;
        char string[]="This is a test";
        char ch;
        stream=fopen("test.txt","w+");
        fwrite(string,strlen(string),1,stream);
        fseek(stream,0,SEEK_SET);
        do
        {
            ch=fgetc(stream);
            putch(ch);
        }
        while (ch!=EOF);
        fclose(stream);
        return 0;
    }
    



    fgetpos 

      功能 :获取在流中的当前位置。获取唯一指定的流中位置指示器并且将其保存到指向位置的fpos_t类型变量。
      用法 :fgetpos(FILE *pFile, fpos_t *pos),正常时返回零值,出错时返回非零int值。

    fgets 

    函数功能 :从流中读取多个字符并且将它们以C风格字符串存储到char*类型参数直到指定字符-1个字符已经读取或者一个换行或者到达EOF为止。换行符会让fgets停止读取,但是它会被当作有效字符它会被包含到目标字符串里面去。C风格字符串默认会将一个空字符添加到获取的字符串后面。
    函数用法 :fgets(char *str, int num, FILE *pFile),str将存储目标字符串,num指示读取字符数+1。返回值为char*类型。如果正常读取,将返回str,如果没有字符被读取并且到达EOF,str的值将不变且返回空指针。如果有错误发生,会返回空指针。
    参考例子 :
    #include <string.h>
    #include <stdio.h>
    int main()
    {
        FILE *stream;
        char string[]="This is a test";
        char msg[20];
        stream=fopen("test.txt","w+");
        fwrite(string,strlen(string),1,stream);
        fseek(stream,0,SEEK_SET);
        fgets(msg,strlen(string)+1,stream);
        printf("%s",msg);
        fclose(stream);
        return 0;
    }




    fputc 

    函数功能 :写一个字符到指定流,并且位置指示器前进一个。字符将被写到流的内部位置指示器指示的当前位置,指示器随后前进一个字符。
    函数用法 :fputc(int ch, FILE *pFile),成功则返回该字符,否则返回EOF并设置error指示器。
    参考例子 :
    #include <stdio.h>
    int main()
    {
        char msg[]="Hello world";
        int i=0;
        while (msg[i])
        {
            fputc(msg[i],stdout);
            i++;
        }
        return 0;
    }




    fputs 

    函数功能 :写一个字符串到指定流。C风格字符串最后的'\0'将不会被写到流。
    函数用法 :fputs(const char *str, FILE *pFile),返回值为int型,若出错则返回EOF,否则返回无效字符。
    参考例子 :
    #include <stdio.h>
    int main()
    {
        fputs("Hello world",stdout);
        return 0;
    }




    fread 

    函数功能 :从流中读取数据块。读取指定个数元素的一组数据,其中每个元素有指定字节数,从流中读取并存放在指定内存块。
    函数用法 :size_t fread(void *ptr, size_t size, size_t count, FILE *pFile),ptr指向一个至少有size*count大小的内存块,size指示每一个元素的大小,count指示读取元素个数。函数将返回读取的元素总数,如果它与count不符,那么可能是发生了错误或者是到达了EOF。
    参考例子 :
    #include <string.h>
    #include <stdio.h>
    int main()
    {
        FILE *stream;
        char msg[]="this is a test";
        char buf[20];
        if ((stream=fopen("test.txt","w+"))==NULL)
        {
            fprintf(stderr,"Cannot open output file.");
            return 1;
        }
        fwrite(msg,strlen(msg)+1,1,stream);
        fseek(stream,SEEK_SET,0);
        fread(buf,strlen(msg)+1,1,stream);
        printf("%s",buf);
        fclose(stream);
        return 0;
    }




    freopen 

    函数功能 :函数将尝试关闭与第三个参数所代表的流所关联的文件并取消关联,然后不管流此时的状态是否为关闭,将打开流并打开指定文件且与其相关联。此函数在将指定文件关联到stdin,stdout,stderr等流时格式有用。
    函数用法 :FILE* freopen(const char* filename, const char* mode, FILE* stream),mode相关信息详见fopen函数说明。成功则返回确定流的对象,否则返回空指针。
    #include <stdio.h>
    int main()
    {
        if (freopen("OUTPUT.FIL","w",stdout)==NULL)
            fprintf(stderr,"error redirecting stdout");
        printf("This will go into a file.");
        fclose(stdout);
        return 0;
    }




    fscanf 

    函数功能 :从流中读取格式化数据。从流中读取数据并存储在附加参数指向的位置。附加参数必须指向在格式参数中指定类型的已经分配的对象。
    函数用法 :int fscanf(FILE *pFile, const char* format, ...),format中可能包含以下元素:
      1.空白字符。函数会读取并忽略所有空白字符包括空格、换行和制表符直到读到下一个非空字符。可以包含任意数目的空白字符。
      2.除%外的任意非空字符。任意一个不是空白字符且不是以%开头的字符将导致函数从流中读取下一个字符将其与它比较,如果匹配则函数将进行下一个字符的读取与比较。如果不匹配,函数失败并返回,结束读取。
      3.格式指定符。由以%开始的序列形成一个格式说明符,用于指定从流中提取到的数据的类型和格式并将其存储在附加参数中指出的位置。格式说明符的原型如下:
      [=%[*][width][modifiers]type=]
      其中:
      *-->一个可选的起始符号,指示将从流中读取的数据被忽略。
      width-->在当前读操作中读取的最大字符数。
      modifiers-->指定不同于int(在d,i,n情况下),unsigned int(在o,u,x情况下),float(在e,f,g情况下)的附加参数指定的数据的大小。"h"-->short int(在d,i,n),或unsigned short int(在o,u,x)。"l"-->long int(在d,i,n),或unsigned long int(在o,u,x)或double(在e,f,g)。"L"-->long double(在e,f,g)。
      type-->一个指定要读取数据的类型与期望的读取方式,它可能的值如下:
        c-->单个字符。
        d-->十进制整数。可选正负号。
        e,E,f,g,G-->浮点数。可选正负号,可以使用科学计数法。
        o-->八进制整数。
        s-->字符串。读取字符串直到空白字符出现。
        u-->无符号十进制整数。
        x,X-->十六进制整数。
      附加参数期望是引用(指针)类型,如果你想将fscanf读取来的数据存储到一个一般变量,则需要加&符号。如:fscanf(pFile, "%d", &n);
      函数时返回成功读取的元素个数。这个计数比期望的读取数少或者相等,在匹配失败的情况下甚至是0。在没有数据被成功读取时失败则返回EOF。
    参考例子 :
    #include <stdlib.h>
    #include <stdio.h>
    int main()
    {
        int i;
        printf("Input an integer: ");
        if (fscanf(stdin,"%d",&i))
            printf("The integer read was: %i",i);
        else
        {
            fprintf(stderr,"Error reading an integer from stdin.");
            exit(1);
        }
        return 0;
    }






    fseek 

    函数功能 :重新定位流的位置指示器。将与流关联的位置指示器设置到一个新的由第三个参数指定的引用位置加上第二个参数指定的偏移量而定义的新的位置。在调用了此函数之后EOF指示器将被清除,ungetc函数所产生的所有影响将被丢弃。当在文本文件使用fseek和ftell时,记住在一些平台上对文本文件进行格式转换时将导致意想不到的重定位。在开放的可以读写的流上,对fseek的调用可以对读和写之间进行切换。
    函数用法 :int fseek(FILE *pFile, long int offset, int origin),offset指示相对origin的偏移量,origin可能的取值为:SEEK_SET,文件起始;SEEK_CUR,文件指针当前位置;SEEK_END,文件尾。成功返回零值,否则返回非零值。
    参考例子 :
    #include <stdio.h>
    long filesize(FILE *stream);
    int main()
    {
        FILE *stream;
        stream=fopen("MYFILE.TXT","w+");
        fprintf(stream,"This is a test");
        printf("Filesize of MYFILE.TXT is %ld bytes",filesize(stream));
        fclose(stream);
        return 0;
    }
    long filesize(FILE *stream)
    {
        long curpos,length;
        curpos=ftell(stream);
        fseek(stream,0L,SEEK_END);
        length=ftell(stream);
        fseek(stream,curpos,SEEK_SET);
        return length;
    }




    fsetpos 

      功能 :定位流位置指示器。将流位置指示器定位到一个由值由fgetpos函数获取的fpos_t指针指向的位置的新的位置。产生的其它影响与fseek相同。
      用法 :int fsetpos(FILE *pFile, const fpos_t *pos)。成功则返回零值,否则返回非零值且将全局errno变量设置为某确定值。

    ftell 

    函数功能 :获取位置指示器在流中的当前位置。对二进制流,返回值等于从文件起始位置的偏移字节数;对文本流,返回的值不能确保一定是从文件起始位置的偏移字节数,但返回值仍可用于重定位流位置指示器到此位置。
    函数用法 :long int ftell(FILE *pFile),成功则返回当前位置指示器的值,如果出错,返回-1L,设置全局errno变量。
    参考例子 :
    #include <stdio.h>
    int main()
    {
        FILE *stream;
        stream=fopen("MYFILE.TXT","w+");
        fprintf(stream,"This is a test");
        printf("The file pointer is at byte %ld",ftell(stream));
        fclose(stream);
        return 0;
    }
    





    fwrite 

    函数功能 :向流中写数据块。其参数解释等与fread相对应。
    函数用法 :size_t fwrite(const void *ptr, size_t size, size_t count, FILE *pFile),成功写入的元素数将被返回,如果这个数与count不符,则表明出现了错误。
    参考例子 :
    #include <stdio.h>
    struct mystruct{
        int i;
        char ch;
    };
    int main()
    {
        FILE *stream;
        struct mystruct s;
        if ((stream=fopen("TEST.dat","wb"))==NULL)
        {
            fprintf(stderr,"Cannot open output file.");
            return 1;
        }
        s.i=0;
        s.ch='A';
        fwrite(&s,sizeof(s),1,stream);
        fclose(stream);
        return 0;
    }




    getc 

    函数功能 :返回指定流的内部文件位置指示器当前所指向的字符,指示器指向下一个字符。它与fgetc功能一样但是可能用宏实现,所以传过来的参数不能是可能导致其它含义的表达式。
    函数用法 :int getc(FILE *pFile)。读取的字符将被作为int值返回,如果EOF或者读取错误,则返回EOF并且设置error与EOF指示器。








    getchar 

    函数功能 :从标准输入获取一个字符。
    函数用法 :int getchar(),返回获取的字符,若EOF或发生错误,将返回EOF且设置error或EOF指示器。
    参考例子 :
    #include <stdio.h>
    int main()
    {
    int c;
    while((c = getchar()) != EOF)
    {
    ....
    }
    return 0;
    }


    gets 

      功能 :从标准输入获取一个字符串。从标准输入读取一个字符串直到换行符为止并存储到传入的参数,换行符不包括在里面。一个'\0'将自动被添加到字符串的最后。gets没有提供限制读取字数限制,所以你需要自己留意输入的字符数没有超过传入参数所提供的空间。
      用法 :char* gets(char* str),成功则返回str,如果EOF或没读取到字符则str不变且返回空指针。发生错误也返回空指针。

    perror 

      功能 :打印错误信息。解读全局变量errno的值为一个字符串并且将其打印到stderr(标准错误输出流,通常是屏幕),可选以传入字符串开头。errno是一个全局的描述最近一个错误的变量。
      用法 :void perror(const char* str),如perror("my deferr"),则可能的输出为my deferr: no such files.。

    putc 

      功能 :向流中写一个字符。流位置指示器将前进一个字符。putc与fputc功能类似但它可能为宏实现,参数要求不能为可能引起歧义的表达式。
      用法 :int putc(int ch, FILE *pFile),无错则返回ch,否则返回EOF且设置error指示器。

    putchar 

      功能 :向标准输出流写一个字符。
      用法 :int putchar(int ch),返回ch,若出错则返回EOF且设置error指示器。

    puts 

      功能 :向标准输出流输出一个字符串。向stdout写入一个字符串并且最后添加一个换行符。字符串最末的'\0'将被忽略。fputs(str, stdout)起同样的效果但最后没有换行符。
      用法 :int puts(const char* str),返回一个非负数,出错返回EOF。

    remove 

      功能 :删除参数中指定名字的文件。这是一个直接对文件进行的操作。
      用法 :int remove(const char* filename),如果删除成功则返回零值,否则返回非零值并且errno会被设置为相应值。调用perror函数可以向标准流打印错误信息。

    rename 

      功能 :重命名文件或文件夹。如果旧名字与新的名字在不同的路径,如果操作系统支持文件将被移动到新的位置。
      用法 :int rename(const char* oldname, const char* new name),如果文件被成功重命名,则返回零值;否则返回非零值且设置errno为对应值。errno是一个对应错误类型的数值。调用perror函数可以向标准流打印错误信息。

    rewind 

      功能 :定位位置指示器到开始。将与流关联的位置指示器定位到文件的开头,对rewind的调用与fseek(pFile, OL, SEEK_SET)等价,除了一点,就是rewind会清除error指示器。
      用法 :rewind(FILE *rewind),无返回值。

    setbuf 

      功能 :设置流缓冲区。设置一个缓冲区用于指定全缓冲流的I/O操作,或者如果为缓冲区指定参数是NULL,将禁用流缓冲以致流成为一个无缓冲流。函数必须在文件与打开的流已经关联但是任何输入输出操作都还没有进行。缓冲区指定参数必须是一个指向至少BUFSIZ大小的数组。对于全缓冲流,写操作将不会被马上执行到设备,数据将在缓冲区中累积直到缓冲区充满之后被作为一个块写入到设备。当刷新流时这个写操作会被强制执行,也就是当fflush或者fclose函数被调用时。当程序终止时所有缓冲也会被刷新。对于无缓冲流,数据在每个写操作之后会尽可能快的被写到物理设备。所有文件在打开时都会有一个默认分配流。这个函数可以用于定义一个用户分配缓冲区或者将一个指定流的缓冲禁用。系统标准流比如stdout和stderr都是无缓冲的除非它们被重定向。如果要更改为行缓冲流,使用setvbuf。
      用法 :void setbuf(FILE *pFile, char *buffer),buffer的定义大小至少为char buffer[BUFSIZ]。

    setvbuf 

      功能 :与setbuf功能类似,所不同的是这个函数允许指定缓冲的模式与大小。缓冲的大小(bytes)是由一个参数来指定。如果缓冲未被指定如缓冲参数为NULL,那么系统会动态分配函数要求的内存量作为流的缓冲。模式参数被用于指定缓冲将会是全缓冲、行缓冲还是无缓冲。全缓冲的情况与setbuf一样。而当为行缓冲时在每当换行符写入时缓冲将被写到物理设备。
      用法 :int setvbuf(FILE *pFile, char *buffer, int mode, size_t size),操作成功则返回零值;否则返回非零值,比如一个无效的模式或大小或buffer为NULL系统自动分配内存时发生错误。参数说明:mode指定文件缓冲模式,取值可以为_IOFBF-->全缓冲,_IOLBF-->行缓冲,_IONBF-->无缓冲。size指定缓冲大小。如果buffer为NULL,那自动分配最小应分配内存;否则必须指定一个不大于buffer的bytes数。

    tmpfile 

      功能 :打开一个临时文件。建立一个临时二进制文件,开放更新(wb+模式,参考fopen函数)。文件名当然要与任何此目录下已存在的不同,文件默认存储在用户的根目录下,即“桌面”的上一级目录。所建立的这个临时文件会在流关闭或者程序正常终止的时候自动关闭。
      用法 :FILE* tmpfile(),如果成功函数返回一个指向所建立的临时文件的流指针。如果文件不能被创建,会返回NULL。

    tmpnam 

      功能 :生成临时文件名。一个包含文件名且与任何已存在文件不相同的字符串被生成。这个字符串可以被用于创建一个临时文件而不必覆盖任何已存在文件。如果参数为空指针,那么结果字串会存储在一个可以通过返回值访问的内部静态数组。这个串的内容会一直存在直到对此函数的下一次调用清除它。如果参数不为空指针,它必须指向一个至少有L_tmpnam字节的数组,它将被所提议的临时文件名所填充。L_tmpnam是<cstdio>中定义的一个宏。这个函数返回的文件名可以被用于创建一个正常的文件能被fopen作为一个临时文件来使用。这个文件通过这种方式来创建,与那些通过tmpfile函数创建的文件不一样,在流关闭时不会自动关闭,在不使用它以后,你必须先关闭然后调用remove来删除它。
      用法 :char* tmpnam(char* str),str即指定文件名。返回一个包含目标文件名的C风格字符串指针。如果str是空指针,返回的指针会指向一个将会在下一次调用些函数时被覆盖的内部缓冲区。如果str不是空指针,那么返回str。如果函数没能创建一个合适的文件名,那么将返回一个空指针。

    ungetc 

      功能 :将一个字符退回输入流中。一个字符会被添加到流中上一个读取字符的位置,内部文件位置指示器将退回到这个位置。这个字符可以与上一个被读取的字符相同也可以不同。这只会影响下一个对此字符进行读取的结果,而不会影响到物理文件的内容。文件内容将不会被此函数所影响。如果设置了EOF内部指示器,那么在调用此函数之后它将被清除。对此流的fseek,fsetpos,rewind都会将之前退回的字符都丢弃。如果传递的参数为EOF,那么操作失败,流不变。
      用法 :int ungetc(int ch, FILE *pFile),ch表达将会退回的字符,它会被当作int值传递。pFile是一个标识一个输入流的FILE对象指针。




    fileno

    函数功能:  得到与fp等价的文件句柄号
    函数用法:int fileno(FILE *fp) ,fp-->由fopen()函数打开的文件指针   
    参考例子:
    #include <stdio.h>
    
    
    int main()
    {
        FILE *stream;
        stream=fopen("file","r");
        printf("File number is %d\n",fileno(stream));
        fclose(stream);
        return 0;
    }    




    fgetchar



    函数功能 : 等价于fgetc(stdin),也等价于getchar,但仅作为函数实现     
    函数用法 : int fgetchar(void) , fp-文件指针,返回读出的字符,如文件已到结尾,返回值为EOF
    参考例子 : 
    #include <stdio.h>
    int main()
    {
           FILE *fp;
           int c;
           fp = freopen( "file", "r", stdin );
           while( (c = getchar()) != EOF )
             putchar(c);
           fclose( fp );
        return 0;
    }   




    fputchar



    函数功能 : 在标准输出流(即屏幕上)的当前位置写入一个字符
    函数用法 : int fputchar(int ch),ch-要写入的字符(舍去高位字节),   操作正确时返回写入的字符,错误返回EOF
    参考例子 :


    #include <stdio.h>
    int main()
    {
        char msg[] ="This is a test";
        int i=0;
        while (msg[i])
        {
            fputchar(msg[i]);
            i++;
        }
        return 0;
    }


                                                                                                                     
    展开全文
  • 试图执行的查询中不包含作为合计函数一部分的特定表达式的解决方法试图执行的查询中不包含作为合计函数一部分的特定表达式的解决方法 统计时每个使用的字段都要在 Group By 中出现前面select选择的字段,都要在...
  • !... SELECT SUM(XSJE / 1000) AS XSJE, SUM(SL) AS SL, LRRQ FROM MTGL_C_KPXX WHERE (LRRQ BETWEEN ? AND ?) ...sql语句于上,我想统计每天的销售金额总量和总数量,每天有多个销售金额,每个销售金额有一个时间,要...
  • 2008年10月08日 星期三试图执行的查询中不包含作为合计函数一部分的特定表达式的解决方法sql="SELECT 成绩表.准考证号, 成绩表.班级, 成绩表.考生姓名, Sum(单选题+中文录入+基本操作+文字处理+电子表格+浏览器+电子...
  • 原来的sql语句: select a.*,count(b.aid) as num from A as a right join B as b on a.id=b.aid order by a.id desc 提示错误: 试图执行的查询中不包含作为合计函数一部分的特定表达式 id 。 修正后的sql语句: ...
  • oracle 判断字符串是否包含指定内容

    千次阅读 2018-12-04 16:19:00
     如何将表中的包含特殊字符的脏数据查出来? 2.instr()函数  语法: instr(string, substring[, start_position[, th_appearance]])  参数说明:  第1个参数表示:必选项。将要被检索的字符串,可以...
  • 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句突然看到这个问题,脑袋一蒙,不知道啥意思,后来想想,试图把select里的选项放到后面,问题自然解决!下面这个就是报“在选择列表中无效...
  • 错误提示: 消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'Qiu.dbo.students.name' 无效,因为该列没有包含在聚合...指定 GROUP BY 时,选择列表中任何非聚合表达式内的每个属性名都应包含在GROUP BY列表中,
  • 如何查找自己写的sql server 哪些存储过程,函数、触发器包含某个指定的字符串 ?1.查找 过程、函数 外码里是否包含指定的串:SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUT
  • 常用头文件及包含函数

    千次阅读 2015-09-06 21:48:10
    math.h常用函数 int abs (int x); double acos (double x); double asin (double x); double atan (double x); double atan2 (double y, double x); double atof (const char *s); double ceil...
  • 在python应用中我们经常会用到模块,但是有很多人并不十分了解导入模块包含的所有函数,今天给大家介绍一种可以快速显示模块函数的方法,希望对大家有所帮助, 首先我们需要用到一个工具软件 “ ipython”,获取...
  • 通常在Excel中要从一列中提取包含指定内容的数据,可以用自动筛选中的自定义筛选,并设置所包含的字符。如果要用公式来实现这种类似筛选的效果,可以在数组公式中用SEARCH函数来查找所包含的字符。假如在A2:A100区域...
  • 选择列表中的列 'Student.Sname' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 查询每个同学的学号、姓名、选课数 报错语句: SELECT Homework.Sno,Sname,COUNT(*) AS Num FROM Homework,Student ...
  • 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中 T-SQL核心语句形式: SELECT --指定要选择的列或行及其限定  [INTO ]  --INTO子句,指定结果存入新表 FROM    --FROM子句...
  • Excel COUNTIF函数解决列包含判断问题

    千次阅读 2017-08-25 13:58:44
    COUNTIF函数用法COUNTIF 是一个统计函数,用于统计满足某个条件的单元格的数量;例如,统计特定城市在客户列表中出现的次数。 COUNTIF 的最简形式为:=COUNTIF(要检查哪些区域? 要查找哪些内容?) 详细使
  • scandir()函数返回一个数组,其中包含指定路径中的文件和目录。这篇文章主要介绍了使用PHP函数scandir排除特定目录,需要的朋友可以参考下
  • 一.类的静态成员变量,以及静态函数。 静态成员变量: ...2.类的大小不包含代码区,创建指向类方法的指针,需要指定所属的类。如有类函数void go();想要创建指向该函数的指针,则创建方式如下: cla
  • Vicky的tag词做了进一步的整理。今天她遇到一个问题:现在她有按照各个tag整理的酒店名称,希望能把名称里...这个需求其实就是需要在B这一列上根据文本内容中是否包含“温泉”这一关键字实现不同的格式。使用条件格式
  • PHP包含文件函数include、require区别

    万次阅读 2018-07-17 14:52:07
    例如,即使require放在计算结果为假的if语句中,依然会包含指定文件。 第二个重要的区别是:require出错时,脚本将停止运行,而在使用include的情况下,脚本将继续执行。 4、require_once() 语法:require_...
  • C# 不包含采用0个参数的构造函数

    万次阅读 热门讨论 2017-02-05 11:32:47
    内容: 一、构造函数是什么? (1)构造函数 ,是一种特殊的方法。构造函数具有与类相同的名称,它主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。不...
  • reverse函数:反转容器内容

    万次阅读 多人点赞 2015-11-01 11:52:31
    reverse函数可以反转一个容器中的内容包含在库中。 1、函数原型 reverse函数等同于下面的代码: template void reverse (BidirectionalIterator first, BidirectionalIterator last) { while ((first!=last)&&...
  • json字符串中,包含函数的处理

    千次阅读 2017-12-12 17:15:48
    json字符串中,包含函数時,使用JSON.parse(strJSON)轉換時,定義的字符串函數被識別中普通的字符串。 比如:{"formate":"function test(){ return 1;}"} 可以使用JSON.parse(str,funReviver)中第二個參數funReviver...
  • 由于之前没有好好学习过C语言,所以对其自带头文件所包含内容总是不清楚,每次写代码都是盲目的#include很多.h,现在重新整理一下,发现了不少很好的函数,以方便复习查阅。不完全统计,C语言标准库中的头文件有15...
  • C++ MFC 画函数曲线(包含坐标)

    万次阅读 2016-12-23 22:39:16
    第一步:新建MFC。 VC++6.0的话是文件--新建--工程--MFCAppWizard(exe)--填写工程名称--...这个函数名在--C+你的工程名字+View里面,点开这个,就可以看见OnDraw(CDC *pDC)了,双击,然后看见:// TODO: add draw c

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,511,237
精华内容 604,494
关键字:

包含指定内容的函数