fscanf和fprintf

1.函数原型:

  • int fprintf(FILE *fp, const char *format[,argument, ...])
  • int fscantf(FILE *fp, const char *format[,address, ...])

2.功能:按格式对问件进行I/O操作

3.返回值:

  • 成功,返回I/O的个数,出错或文件尾,返回EOF。
  • fprintf()返回值就是写入成功的字符的个数。
  • fscanf()返回值是扫描到几个数据,这个字符串不管有多长,要扫描的每一种类型算一个数据,%s算一个,%d算一个。详见eg3.

4.例子:

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。

eg1:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>

void main1()
{
    //printf("hello");
    //fprintf(stdout, "hello");//printf只是fprintf特例
    char str[100] = { 0 };
    //scanf("%s", str);
    fscanf(stdin, "a=%s", str);//从字符串中取出,键盘缓冲区,输入时,要输入“a=abc”,下面才会打印。
    fprintf(stdout, "%s", str);//int string映射到一个字符串 显示器缓冲区

    getchar();
    getchar();

}
//1    [email protected]    xijaxi16ytja6t7ibcrj
void main2()
{

    char str[256] = { 0 };
    {
        int i = 1;
        char email[100] = "[email protected]";
        char password[100] = "xijaxi16ytja6t7ibcrj";

        sprintf(str, "%d %s %s", i, email, password);
        fprintf(stdout, "\n%s", str);
    }
    {
        int j;
        char emailx[100] = { 0 };
        char passmd5[100] = { 0 };
        sscanf(str, "%d%s%s", &j, emailx, passmd5);
        fprintf(stdout, "\nj=%d eamilx=%s passmd5=%s ", j, emailx, passmd5);

    }

    system("pause");
}

eg2:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

typedef struct info7k7k
{
    char user[50];
    char password[50];

}INOF,* PINOF;

void main2x()
{
    FILE *pfr = fopen("Z:\\I\\尹成清华终极版C语言视频源码文档20150131\\大数据相关数据\\7k7k2000万_2047\\2000-1\\7k7kOK.txt", "r");
    FILE *pfw = fopen("Z:\\I\\尹成清华终极版C语言视频源码文档20150131\\大数据相关数据\\7k7k2000万_2047\\2000-1\\7k7kOKwithid.txt", "w");
    int i = 0;
    while (!feof(pfr))
    {
        i++;
        INOF info1;
        fscanf(pfr, "%s%s", info1.user, info1.password);//提取
        fprintf(pfw, "%d %s %s\n", i, info1.user, info1.password);//组合
    }
    fclose(pfr);
    fclose(pfw);
    system("pause");
}

void main3x()
{
    //int num = fprintf(stdout, "helloword%s","1234");
    //printf("\n%d", num);//fprintf返回值就是写入成功字符的个数
    FILE *pf = fopen("C:\\x.txt", "r");
    int num = fprintf(pf, "helloword%s", "1234");//写入失败返回-1
    printf("\n%d", num);
    system("pause");
}
void main()
{
    //char str[128] = { 0 };
    //int numa;
    //int  numb;
    //int num = fscanf(stdin, "%s%d%d",str,&numa,&numb);
    ////返回值是扫描到几个数据,失败返回-1
    //printf("\n%d", num);
    FILE *pf = fopen("C:\\x.txt", "w");
    char str[128] = { 0 };
    int numa;
    int  numb;
    int num = fscanf(pf, "%s%d%d",str,&numa,&numb);
    printf("\n%d", num);

    system("pause");

}

eg3:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

typedef struct info7k7k
{
    char user[50];
    char password[50];

}INOF,* PINOF;

void main2x()
{
    FILE *pfr = fopen("Z:\\I\\尹成清华终极版C语言视频源码文档20150131\\大数据相关数据\\7k7k2000万_2047\\2000-1\\7k7kOK.txt", "r");
    FILE *pfw = fopen("Z:\\I\\尹成清华终极版C语言视频源码文档20150131\\大数据相关数据\\7k7k2000万_2047\\2000-1\\7k7kOKwithid.txt", "w");
    int i = 0;
    while (!feof(pfr))
    {
        i++;
        INOF info1;
        fscanf(pfr, "%s%s", info1.user, info1.password);//提取
        fprintf(pfw, "%d %s %s\n", i, info1.user, info1.password);//组合
    }
    fclose(pfr);
    fclose(pfw);
    system("pause");
}

void main3x()
{
    //int num = fprintf(stdout, "helloword%s","1234");
    //printf("\n%d", num);//fprintf返回值就是写入成功字符的个数
    FILE *pf = fopen("C:\\x.txt", "r");
    int num = fprintf(pf, "helloword%s", "1234");//写入失败返回-1
    printf("\n%d", num);
    system("pause");
}
void main()
{
    //char str[128] = { 0 };
    //int numa;
    //int  numb;
    //int num = fscanf(stdin, "%s%d%d",str,&numa,&numb);
    ////返回值是扫描到几个数据,失败返回-1
    //printf("\n%d", num);
    FILE *pf = fopen("C:\\x.txt", "w");
    char str[128] = { 0 };
    int numa;
    int  numb;
    int num = fscanf(pf, "%s%d%d",str,&numa,&numb);
    printf("\n%d", num);

    system("pause");

}
时间: 2024-10-18 09:58:29

fscanf和fprintf的相关文章

c语言中fscanf和fprintf

很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有.下面我将讲解一下fscanf和fprintf的强大之处. 1.fscanf(可以从一个文件流中格式化读出数据,遇到空格或回车就停止)原型: int fscanf(FILE *stream, const char *format, ...); //fscanf(文件流指针,格式字符串,输出表列);参数:FILE *stream :文件流指针const

函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针): 其中的n是一个正整数.表示从文件中读出的字符串不超过 n-1个字符.在读入的最后一个字符后加上串结束标志'\0'.例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入 字符数组str中. [例10.

进程操作篇atexit execl exit fprintf fscanf getpid nice get priority printf setpid system vfork wait waitpid

atexit(设置程序正常结束前调用的函数) 相关函数 _exit,exit,on_exit 表头文件 #include<stdlib.h> 定义函数 int atexit (void (*function)(void)); 函数说明 atexit()用来设置一个程序正常结束前调用的函数.当程序通过调用exit()或从main中返回时,参数function所指定的函数会先被调用,然后才真正由exit()结束程序. 返回值 如果执行成功则返回0,否则返回-1,失败原因存于errno中. 范例 #

fopen\fread\fwrite\fscanf\fprintf\fseek\feof\rewind\fgets\fputc等系列函数使用总结

转载自:http://blog.csdn.net/xidianzhimeng/article/details/23541289 1 fopen 函数原型:FILE * fopen(const char * path,const char * mode); 返回值:文件顺利打开后,指向该流的文件指针就会被返回.如果文件打开失败则返回NULL,并把错误代码存在errno 中. fopen_s,_wfopen_s安全性上相对于fopen有所增强,如果成功则返回0,失败则返回响应的错误代码 errno_

89 fcanf和fprintf

scanf.printf.putchar.getc.putc.fgets.fputs.sscanf.sprintffscanf和fprintf fgets  从屏幕上获取输入(stdin)或者从文件中获取输入fputs  输入到屏幕上(stdout)或者输出到文件中. scanf   从屏幕上的输入格式化分离.printf   输出到屏幕上. sscanf  从字符串中格式化分离.sprintf  输出到字符串中. fscanf  从文件中格式化分离.fprintf  输出到文件中. fscan

C 文件读写2

feof() int  feof(FILE *stream); 在执行读文件操作时,如果遇到文件尾,则函数返回逻辑真(1):否则,则返回逻辑假(0). feof()函数同时适用于ASCII码文件和二进制文件. 处理二进制文件一般要用fread()和fwrite()函数. fread() int  fread(void *buffer,int size,int count,FILE * stream): 读一个数据块,从文件流stream中读取count个每个大小为size的元素到buffer中.

C++STL之set容器及stream类

首先讲stream流类 头文件#include <sstream> 其功能是进行不同类型之间的转换,跟C语言 fscanf 和 fprintf 作用是同样的,可是比C语言的更简便更好用. 使用方法非常easy #include <string> #include <sstream> #include <iostream> int main() { std::stringstream stream; std::string result; int i = 10

C++文件操作(转)

第一个:简单,容易理解,常用:http://www.cnblogs.com/uniqueliu/archive/2011/08/03/2126545.html 第二个:详细的,如下: 文件文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来.从不同的角度可对文件作不同的分类.从用户的角度

C语言 文件

小白一个,看到有错误,希望指出,万分感谢 /****************************************************************C语言文件概述:    一般文件可分为二进制文件和文本文件. 约定:我们把数据在终端上的表现形式称为数据的终端形式,而不 称为字符形式. 注:终端是指键盘 显示器等和用户直接打交道的输入输出设备. 二进制文件是把内存中的书按其在内存中的储存形式原样输出到磁 盘上存放,也就是说存放的是数据的原样式. 文本文件是把数据终端形式的二