输出函数

1 printf,是把格式字符串输出到标准输出(一般是屏幕,可以重定向)。
2 sprintf,是把格式字符串输出到指定字符串中,所以参数比printf多一个char*。那就是目标字符串地址。
3 fprintf, 是把格式字符串输出到指定文件设备中,所以参数笔printf多一个文件指针FILE*。
 
 
sprintf 是输出到串,一般是直接申请输出到一个字符串中,这个可以用来将大量数字数据转成字符串。
fprintf 是输出到文件,当然,这个文件也可能是虚拟的文件。
printf 是直接输出到标准显示设备,就是屏幕的终端中。

ifstream 和iostream中需要关联的文件事先存在,打开或写一个不存在的文件会使is_open()函数返回错误。而“FILE* f;”的方式则可以创建或打开一个文件。
 
 
gets只能输入字符串 scanf可以输入别的类型的值。
scanf输入字符串时,不能输入有空格的字符串。
gets输入字符串时,是以回车结束,可以接收空格。
请问书上说:fwrite( &number, sizeof( int ), 1, fPtr )是将变量number所对应的4个字节的内容写入到ftr所指向的文件中,而fprintf( fPtr, "%d", number )是把4字节长的整数当作单一的数字或者最多11个数字写入到文件中..这句话我实在是不能理解
fwrite写的是二进制内容,fprintf写的是数字转换成ASCII码之后的字符。两者都把数字64写入一个文件,用记事本打开看下,fwrite写的打开是乱码,fprintf写入的是6和4这两个字符。因为fwrite写的是64的二进制表示(4个字节,前面全是0,最后八位是0100000),fprintf写入的实际内容是36H和34H(16进制表示的字符6和字符4的ASCII编码)
fprintf 与 fwrite 区别很大 2010-08-12 22:17:39

分类: C/C++

今天在实验中发现了这个问题,查了资料:
fscanf和fpintf是一对,用fprintf写的必须用fscanf来读。
fread和fwrite是一对,用fwrite写的必须用fread来读。
同样的数据,使用fprintf和fwrite写下去的是不一样的,但是使用其相应的读命令读上来的数据会是一样的。
文件格式:文本文件(ASCII文件)和二进制文件。我们平时能够用记事本看的文件就是文本文件。‘
文本文件使用fscanf格式读取。二进制文件用fread读取。
摘自 http://topic.csdn.net/u/20100426/01/61fc9faf-69e7-44a6-a353-b2a871e40357.html
int v=1;
fwrite(&v,sizeof(int),1,f);//文件中被写四个字节0x01 0x00 0x00 0x00(32位int,小端存储)
fprintf(f,"%d",v);//文件中被写一个字节0x31(即'1'的ASCII码)
又比如
int v=0x12345678;
fwrite(&v,sizeof(int),1,f);//文件中被写四个字节0x78 0x56 0x34 0x12(32位int,小端存储)
fprintf(f,"%x",v);//文件中被写八个字节0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38
fprintf(f,"%d",v);//文件中被写九个字节0x33 0x30 0x35 0x34 0x31 0x39 0x38 0x39 0x36
(因为0x12345678==305419896)

//  如何操作 文件属性  fs.openflags() [ | new_attr_code ] [ &~ delete_attr_code ]
//  ios::in    读   文件不存在 就无法打开
//  ios::out   写   文件不存在 则建立新文件    文件存在则直接清空文件内容。
搜索
//  ios::app   追加   不能单独使用  否则无法打开
//  ios::in |ios::app   读追加   文件不存在 就无法打开
//  ios::out|ios::app   写追加   文件不存在 则建立新文件    文件存在则保留内容继续在末尾追加。
//  打开文件后 文件指针 在开始处,一旦即将写 文件指针移到 文件末尾开始完成写操作。

//  ios::out|ios::ate|ios::app   同上述 文件指针移动到末尾

//  ios::in|ios::out   文件不存在 打开失败
//  文件存在 可以打开  打开后在 文件指针在开头 读写;

//  ios::binary   加上表示二进制 否则表示 字符串

//  ios::trune
//  ios::nocreat
//  ios::noreplace

//  读写操作不能混用;
//  在写(读)模式 中使用 读(写)操作 会是 是文件指针置空,直接关闭文件。
//  文件打开失败 则调用文件流的指针 返回-1
//  任何 读写操作 都会自动 移动 文件指针

你可能感兴趣的:(输出函数)