精华内容
下载资源
问答
  • 格式化输出函数——fprintf() fprintf(文件指针, 格式串, 输出列表); 功能:按“格式串”所描述的格式把输出项写入“文件指针”所指向的文件。执行这个函数时,若成功则返回所写入的字节数;否则返回一个负数。 ...

    fprintf()函数和fscanf()函数

    格式化输出函数——fprintf()

    • fprintf(文件指针, 格式串, 输出项表);
    • 功能:按“格式串”所描述的格式把输出项写入“文件指针”所指向的文件。执行这个函数时,若成功则返回所写入的字节数;否则返回一个负数。

    格式化输出函数——fscanf()

    • fscanf(文件指针, 格式串, 输出项表);
    • 功能:从“文件指针”所指向的文本文件中读取数据,按“格式串”所描述的格式输出到指定的内存单元中。

    注意:

    格式化读写文件时,用什么格式写入文件,就一定用什么格式从文件读取。读出的数据与格式控制符不一致,就会造成数据出错。
    示例如下:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    void main() 
    {
     FILE *fp;
     //int n = 2;
     int c[2][2] = { 1,1,1,3 };
     int a = 1;
     int b = 2;
     if ((fp = fopen("model1.txt", "w")) == NULL)//以只写方式打开model1.txt文件,测试是否成功
     {
       printf("不能打开文件 \n");
       exit(0);
     }
     fprintf(fp, "minimize\n");
     fprintf(fp, "obj: X_%d + X_%d ",a,b);
     fprintf(fp, "\nsubject to \n");
     fprintf(fp, "%d X_%d + %d X_%d >=%d \n", c[0][0],a, c[0][1],b,a);
     fprintf(fp, "%d X_%d + %d X_%d >=%d \n", c[1][0], a, c[1][1], b,b);
     fprintf(fp, "End \n");
     fclose(fp);

    打开本地文件夹下的model1.txt文件,其运行结果如下:
    在这里插入图片描述

    展开全文
  • c语言 格式化文件输入输出

    千次阅读 2015-03-30 21:29:15
    已经对普通的格式化输入输出函数scanf和printf很熟悉了,格式化文件输入输出函数是在两个函数名前加f,表明“读写对象是磁盘文件而不是键盘和显示器”。 两个函数的原型为: int fprintf(FILE , const char , …);...

    已经对普通的格式化输入输出函数scanf和printf很熟悉了,格式化文件输入输出函数是在两个函数名前加f,表明“读写对象是磁盘文件而不是键盘和显示器”。
    两个函数的原型为:
    int fprintf(FILE , const char , …);
    int fscanf(FILE , const char , …);
    fprintf和fscanf与普通的printf和scanf用法几乎一致,唯一的不同在于多了第一个参数—文件指针,用以标识输入的源文件或输出的目的文件。
    当输入输出正确时,两个函数返回正确处理的字符数,当出错或遇到文件尾时,返回EOF(-1)。

    格式化I/O:fprintf与fscanf
    函数原型:
    int fprintf(FILE *fp,const char *format[,argument,…])
    int fscanf(FILE *fp,const char *format[,address,…])
    功能:按格式对文件进行I/O操作
    返值:成功,返回I/O的个数;出错或文件尾,返回EOF

    例 fprintf(fp,“%d,%6.2f”,i,t); //将i和t按%d,%6.2f格式输出到fp文件
    fscanf(fp,“%d,%f”,&i,&t); //若文件中有3,4.5 ,则将3送入i, 4.5送入t

    例 从键盘按格式输入数据存到磁盘文件中去

    #include <stdio.h>
    main()
    { char s[80],c[80];
       int a,b;
       FILE *fp;
       if((fp=fopen("test","w"))==NULL)
       {   puts("can't open file");   exit() ;   }
       fscanf(stdin,"%s%d",s,&a);/*read from keaboard*/
       fprintf(fp,"%s  %d",s,a);/*write to file*/
       fclose(fp);
       if((fp=fopen("test","r"))==NULL)
       {   puts("can't open file"); exit();   }
       fscanf(fp,"%s%d",c,&b);/*read from file*/
       fprintf(stdout,"%s %d",c,b);/*print to screen*/
       fclose(fp);
    }
    展开全文
  • %n 表示在这之前。printf已经输出了多少字节。 其中的几个补充,%i可以输入的更多十六进制,八进制,例如输入0x16 出来10;输入012 出来10 至于[...]没什么卵用,


    %n 表示在这之前。printf已经输出了多少字节。

    其中的几个补充,%i可以输入的更多十六进制,八进制,例如输入0x16 出来10;输入012 出来10

    至于[...]没什么卵用,


    展开全文
  • 很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件输入和输出呢,还真有。下面我将讲解一下fscanf和fprintf与sprintf()的强大...

           很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有。

    下面我将讲解一下fscanf和fprintf与sprintf()的强大之处。

    1、fscanf(可以从一个文件流中格式化读出数据,遇到空格或回车就停止)
    原型: int fscanf(FILE *stream, const char *format, ...); //fscanf(文件流指针,格式字符串,输出表列);
    参数:
    FILE *stream :文件流指针
    const char *format, ... :字符串的格式
    例子 :

    fscanf(fp,"%s %s %d",new1->number,new1->staddress,&new1->price);(这样写的话数据输入到文件中时每个数据中间就会有一个空格)

    或者写成:
    fscanf(fp,"%s,%s,%d",new1->number,new1->staddress,&new1->price);(这样写的话数据输入到文件中时每个数据中间就会有一个‘,’)



    2、fprintf(可以向一个文件中格式化写入数据)
    原型: int fprintf(FILE *stream, const char *format, ...); //fprintf(文件流指针,格式字符串,输出表列);
    参数:
    a、FILE *stream :文件流指针
    b、const char *format, ... :字符串的格式

    例子 :
    fprintf(fp,"%s %s %d\n",new->number,new->staddress,new->price);    //同上

    或者写成:

    fprintf(fp,"%s,%s,%d\n",new->number,new->staddress,new->price);  //同上

    3,sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。

    头文件

    原型

    int sprintf( char *buffer, const char *format, [ argument] … );

    参数列表

    bufferchar型指针,指向将要写入的字符串的缓冲区。
    format:格式化字符串。
    [argument]...:可选参数,可以是任何类型的数据。

    返回值

    返回写入buffer 的字符数,出错则返回-1. 如果 buffer 或 format 是空指针,且不出错而继续,函数将返回-1,并且 errno 会被设置为 EINVAL。
    sprintf 返回以format为格式argument为内容组成的结果被写入buffer 的字节数,结束字符‘\0’不计入内。即,如果“Hello”被写入空间足够大的buffer后,函数sprintf 返回5
    用法:
     char buf[100]; //开辟缓存,保存设备信息
        bool FindInfo(LLONG loginId)
        {
            printf("%ld\n", loginId);
    
            char cmd[] = CFG_CMD_REMOTEDEVICE;
            //输出缓冲的大小可能需要调节
            int nError = 0;
            char buf[1024 * 16] = {0};
            DWORD bufSize = 1024 * 16;
            bool ret = CLIENT_GetNewDevConfig(loginId, cmd, -1, buf, bufSize, &nError);
            if (!ret)
            {
                printf("cfg error %d\n", nError);
            }
            printf("cfg %ld %ld\n", strlen(buf), sizeof(AV_CFG_RemoteDevice));
    
            AV_CFG_RemoteDevice *tmp = new AV_CFG_RemoteDevice[16];
            memset(tmp, 0, sizeof(*tmp) * 16);
            for (int i = 0; i < 16; i++)
            {
                tmp[i].nStructSize = sizeof(tmp[i]); //结构体大小赋值
            }
    
            // 返回IP数组 和 端口数组,在python中打包成json返给前端
            DWORD tmpSize = 1024 * 16;
            ret = CLIENT_ParseData(cmd, buf, (LPVOID)tmp, tmpSize, 0);
            if (!ret)
            {
                printf("parse error %d\n", CLIENT_GetLastError());
            }
            FILE *fp = fopen("./test.txt","a+"); //以读写的权限打开文件(如果文件不存在则创建),这里用w+实现之前的清除最好
            int buf_lx = 0;
            for (int i = 0; i < 16; i++)
            {
    			if(tmp[i].bEnable)
    			{       //输出到缓存
    				buf_lx += sprintf(buf+buf_lx, "%s,%d,%d\n",tmp[i].szIP,tmp[i].nPort,i);
    				printf("%s----%d---%d\n",tmp[i].szIP,tmp[i].nPort, i );
            		if(fp == NULL)
    				{
    					perror("fopen");
    					return -1;
    				} //输出到文件
    				fprintf(fp,"%s,%d,%d\n",tmp[i].szIP,tmp[i].nPort,i); 
    			}						
            }
            fclose(fp); //关闭文件
            printf("%s",buf); //打印缓存看看效果
            printf("done!\n");    






    展开全文
  • } /* 从键盘输入n个学生的学号,姓名,性别,出生日期,以及m门课程的成绩到结构体数组stu中 */ void inputScore(STUDENT stu[], int n, int m) { int i, j; for (int i = 0; i ; i++) { printf("Input record...
  • 使用头文件里的函数scanf("%s", str)从标准输入流stdin中提取字符,存放到char * str所指示的内存位置。读取成功,函数返回成功读取的项目个数(参数表中成功填充的项目个数),否则返回EOF(通常为-1)。函数scanf...
  • 格式化输入输出: *号相当于是后面的6;将位宽参数化; [^,]到,号前面的的东西。 printf和scanf的返回值 文件输入输出: 一般的方式使用FILE: 打开文件的标准代码:
  • 首先是对文件格式化输入输出,这里用到的一对函数是 fscanf与fprintf fscanf,格式化输入函数 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //...
  • C语言中的几种格式化输入/输出方式: 1. 函数功能:  scanf(); //从标准输入设备(控制台键盘)输入   sscanf(); //从字符串缓冲区输入与指定格式相符的数据   fscanf(); //从文件输入   printf()...
  • 格式化的输入和输出C语言提供一个格式化输入函数fscanf。例如:fscanf(fp,format,args,…);的功能是按format给定的格式将输入数据送到args所指向的内存单元中去。函数返回值为已成功输入的数据个数。C语言提供一个...
  • 1.格式化输入输出函数:scanf,printf; int printf(const char *format,...); format: "% [修饰符] 个是字符" wesley@wesley-VirtualBox:~/c/CH02$ cat pintf.c #include <stdio.h> #include <...
  • /* 格式化输入输出函数: int fprintf(FILE*stream,char*format,&lt;variable-list&gt;) int fscanf(FILE*stream,char*format,&lt;address-list&gt;) fprintf函数的返回值为实际写入文件中的字符...
  • 字符及字符串写入读出:格式化读写函数:其他函数:符号和格式部分:常用文件输入输出符号格式及标准常用应用对象为文件的库函数简介:文件的创建打开阅读数据块的写入读出字符串及字符的写入读出...
  • 格式化文件输入输出 printf % [flags] [width] [.prec] [hIL]type scanf % [flags] type printf flags [width] [.prec] width是整个字符的个数,小数点除外。 .prec表示实数的小数位数。 printf("%*d\n...
  • 学过C语言的,对printf和scanf函数肯定不会陌生(如果不知道,那说明你就没学过C语言),这两个函数分别是格式化输出和格式化输入函数,按照指定的格式输入数据或者在屏幕上输出数据。  fprintf函数和fscanf函数和...
  • 参考中国大学MOOC 浙江大学翁恺C语言程序设计在线课程 目录 常用文件输入输出符号格式及标准 ...格式化读写函数: 其他函数: 符号和格式部分: 常用文件输入输出符号格式及标准 常用应用...
  • 文件格式化读取数据  * 写入格式:共读取 num 行;每行读出一个 stu 型数据,每个成员变量之间用空格分隔   * 形式参数:struct stu * p,指向 stu 型一...
  • fprintf(格式化输出数据至文件) 这个函数的功能类似于文件操作函数 fwrite();通过一个文件描述符将数据写入该文件描述符所指向的文件中。 函数定义: int fprintf(FILE * stream, const char * format,…….);...
  • 就是多了个f前缀,这个f当然就是指的file,也就是文件了,后两者是操作的对象是终端设备,前者则是针对磁盘文件的操作,因此fprintf函数和fscanf函数就是了C语言文件格式化输入输出函数。  学C语言,老师就要...
  • 格式化输出(printf()) 1.何时发送内容到屏幕: printf()会先把要输出的内容发送到1个叫缓冲区(Buffer)的中间存储区域,然后缓冲区中的内容再不断被发送到屏幕上 从缓冲区把数据发送到屏幕或文件称为刷新缓冲区,C标准...
  • 很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件输入和输出呢,还真有。下面我将讲解一下fscanf和fprintf的强大之处。 1、...
  • c语言文件练习

    2018-12-24 00:08:28
    c语言文件处理:C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 文件的读写...
  • 本章首先介绍格式化读取下面是格式化读取的转换符说明:格式化输入转换说明符转换说明解释成%c字符%d有符号十进制整数%e %f %g %a浮点数(%a是C99标准)%E %F %G %A浮点数(%A是C99标准)%i有符号十进制整数%o有符号八...
  • 格式化输入 fscanf()函数 int fscanf(FILE *stream, const char *format, ...) fscanf 函数根据格式串 format 从流 stream 中读取输入,并把转换后的值赋值给后续各个参数,其中的每个参数都必须是一个指针。当...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 635
精华内容 254
热门标签
关键字:

c语言文件格式化输入

c语言 订阅