1: fprintf()函数主要用于格式化信息输出到指定的文件流中

返回值:成功则返回输出的字节数,失败返回eof;
#include <stdio.h>
int fprintf( FILE *stream, const char *format, ... );
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如
char name[20] = "Mary";
FILE *out;
out = fopen( "output.txt", "w" );
if( out != NULL )
fprintf( out, "Hello %s\n", name );
对于其输出格式参数,和printf()一样.
fprintf()和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
在有些地方,有这样的定义:printf(...)=fprintf(stdout,...).

2:eg)
fprintf函数的用法!
fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);

举例用法:
#include <stdio.h>
#include <process.h>

FILE *stream;

void main( void )
{
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';

stream = fopen( "fprintf.out", "w" );
fprintf( stream, "%s%c", s, c );

fprintf( stream, "%d\n", i );
fprintf( stream, "%f\n", fp );
fclose( stream );
system( "type fprintf.out" );
}

屏幕输出:

this is a string
10
1.500000

printf就是在屏幕打印出一段字符串来啊
原型是int printf( const char *format [, argument]... );
是标准输出。

3:printf、sprintf与fprintf 的用法区分

1.printf 是和标准输出文件(stdout)关联的,fprintf 则没有这个限制.

2.fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);

3.sprintf是格式化输出到一个字符串,fprintf是格式化输出到一个stream,通常是到文件。

int fprintf( FILE *stream, const char *format [, argument ]...);
int sprintf( char *buffer, const char *format [, argument] ... );

C语言把文件看作一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称为文本(text)文件,它的每个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内在中的存储形式原样输出到磁盘上存放。

1、fprintf(fp, "%d", buffer); 是将格式化的数据写入文件
fprintf(文件指针,格式字符串,输出表列);

fwrite(&buffer, sizeof(int), 1, fp);是以二进位位方式写入文件
fwrite(数据,数据类型大小(字节数),写入数据的最大数量,文件指针);

由于fprintf写入时,对于整数来说,一位占一个字节,比如1,占1个字节;10,占2个字节;100,占3个字节,10000,占5个字节
所以文件的大小会随数据的大小而改变,对大数据空间占用很大。
而fwrite是按二进制写入,所以写入数据所占空间是根据数据类型来确定,比如int的大小为4个字节(一般32位下),那么整数10所占空间为4个字节,100、10000所占空间也是4个字节。所以二进制写入比格式化写入更省空间。

因此,
对于1 2 3 4 5 6 7 8 9 0 十个整数,用fprintf写入时,占10个字节;而用fwrite写入时,占40个字节。
对于100 101 102 103 104 105 106 107 108 109 110 这十个整数,用fprintf写入时,占30个字节;而用fwrite写入时,占40个字节。
对于10000 10100 10200 10300 10400 10500 10600 10700 10800 10900 11000 这十个整数,用fprintf写入时,占50个字节;而用fwrite写入时,还是占40个字节。

fwrite 函数按照指定的数据类型将矩阵中的元素写入到文件中。写二进制文件
其调用格式为:COUNT=fwrite (fid, A, precision)其中COUNT返回所写的数据元素个数,fid为文件句柄,A用来存放写入文件的数据,precision用于控制所写数据的类型,其形式与fread函数相同。
fprintf 写文本文件 函数的调用格式为:COUNT= fprintf(fid, format, A)其中A存放要写入文件的数据。先按format指定的格式将数据矩阵A格式化,然后写入到fid所指定的文件。format用以控制读取的数据格式,由%加上格式符组成,常见的格式符有d,f,c,s。fid为文件句柄。

看如下的例子:

[html] view plain
  1. #include < stdio.h >
  2. void main()
  3. {
  4. int num;
  5. char name[5];
  6. FILE *fp;
  7. if (( fp = fopen ("t.txt", "w")) == NULL)
  8. printf("cannot open file!\n");
  9. scanf("%d %s",&num,name);
  10. fprintf(fp, "%d %s", num, name);
  11. fclose(fp);
  12. if (( fp = fopen ("tt.txt", "w")) == NULL)
  13. printf("cannot open file!\n");
  14. fwrite(&num, sizeof(int), 1, fp);
  15. fwrite(name, sizeof(char), 5, fp);
  16. fclose(fp);
  17. }
  18. 输入:100000 liuj
  19. t.txt: 100000 liuj    (文件大小:11字节)
  20. tt.txt:爢 liuj (乱码,文件大小:9字节)


2、 fprintf() : 按格式输入到流,

其原型是int fprintf(FILE *stream, const char *format[, argument, ...]); 其用法和printf()相同,不过不是写到控制台,而是写到流罢了。

注意的是返回值为此次操作写入到文件的字节数。

int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字节;str2: 10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。

文件使用之后一定要关闭,否则将不能正确显示内容.fwrite:读入两个学生信息然后用fwrite存入文件

printf函数的一般形式为: int printf(const char *format,[argument]); 如:printf("the value of printf is:%d",a); //a的值为24 1: fprintf()函数主要用于格式化信息输出到指定的文件流中返回值:成功则返回输出的字节数,失败返回eof;#include  int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出 #include &lt;stdio.h&gt;  int f printf ( FILE *stream, const char *format, ... ); f printf ();// 函数 根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件. //因... #include   int f printf ( FILE *stream, const char *format, ... ); f printf () 函数 根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此f printf ()可以使得信息输出到指定的文件.比如     char name[20] = "Mary"; #include   int f printf ( FILE *stream, const char *format, ... ); f printf () 函数 根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此f printf ()可以使得信息输出到指定的文件.比如     char name[20] = "Mary"; 是和标准输出文件(stdout)关联的,F printf 则没有这个限制 Sprin tf () 是把格式字符串输出到指定字符串中,所以参数比 printf 多一个char*,那就是目标字符串地址 F printf () 是把格式字符串输出到指定文件设备中,所以参数比 printf 多一个文件指针FILE* 主要用于文件操作,F printf ()是格式化输出到一个stream,通常是到文件 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数 原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); sscanf与scanf类似,都是用于输入的,只是后者以屏幕
今天在实验中发现了这个问题,查了资料: fscanf和fpin tf 是一对,用f printf 写的必须用fscanf来读。 fread和 fwrite 是一对,用 fwrite 写的必须用fread来读。 同样的数据,使用f printf fwrite 写下去的是不一样的,但是使用其相应的读命令读上来的数据会是一样的。 文件格式:文本文件(ASCII文件)和二进制文件。我们平时能够用记事本看的文件就
sinat_19737833: //desc_mat.row(i) = train_images[i].reshape(1, 1) + 0; train_images[i].reshape(1, 1).copyTo(desc_mat.row(i)); //data.row(i) = projectedMat.row(0) + 0; projectedMat.copyTo(data.row(i)); //cs = src.reshape(1, 1) + 0; Mat dst = src.reshape(1, 1); string和stringstream用法总结 丁禹兮家的小可爱: 有一部分是繁体字 混合高斯背景模型及opencv实现 棪木 : 非常感谢,正是需要,手打完,待验证! string和stringstream用法总结 desktop233: 多次使用时,clear好像不管用啊,每次都还保留了之前的数据