C面试宝典-(程序题)1

来源:互联网 发布:上海二手住宅成交数据 编辑:程序博客网 时间:2024/06/05 08:34

1.fscanf()函数
fscanf()遇到空格和换行时结束,注意空格时也结束,fgets遇到空格不结束。
功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。
返回值:整型,成功返回读入的参数的个数,失败返回EOF(-1)。
用法:
int fscanf(FILE*stream,constchar*format,[argument…]);
FILE *stream:文件指针
char *format:格式字符串
[argument…]:输入列表


2.fprintf()函数
格式化输出到一个流/文件中
用法:
int fprintf (FILE* stream, const char*format, [argument])
FILE*stream:文件指针
const char* format:输出格式
[argument]:附加参数列表


#include <stdio.h>#include <stdlib.h>int main(){    int MAX = 10;    //a用来临时存放数据,如果超过范围,使用b重新申请空间    int *a = (int *)malloc(MAX*sizeof(int));    int *b;    FILE *fp1;    FILE *fp2;    fp1 = fopen("a.txt", "r");    //打开文件    if(fp1 == NULL)    {        printf("error");        exit(-1);    }    fp2 = fopen("b.txt", "w");    if(fp2 == NULL)    {        printf("error");        exit(-1);    }       int i = 0;    int j = 0;    while(fscanf(fp1, "%d", &a[i]) != EOF)    {        i++;        j++;        //数据数量过大重新分配空间        if(i >= MAX)        {            MAX = 2*MAX;            b = (int *)realloc(a, MAX * sizeof(int));            if(b == NULL)            {                printf("error3");                exit(-1);            }               a = b;        }    }    //将数据转入fp2    for(;--j >= 0;)    {        fprintf(fp2, "%d\n", a[j]);    }    fclose(fp1);    fclose(fp2);        return 0;}
1 0
原创粉丝点击