printf 和 fprintf 在c 和c++中的使用。

看了大家的回答很感谢。可是我把程序修改了下,又发现了问题。
为什么这样在C语言库中还是执行不了,而在C++语言库里就能执行。。。
#include "math.h"
#include "stdio.h"
void main()
{
double a=1;
double b=2;
a=b;
printf("%f",a);

FILE *fp;
fp=fopen("d:\\data.txt","w");
fprintf(fp,"%f",a);
fclose(fp);
}

二者在C语言和C++中的功能是相同的。

1 printf。
C语言的标准格式化输出函数。其调用格式为
int printf(char * format_string, ...);
参数个数不定,依据第一个参数格式字符串中的格式字符,决定后续有多少个参数。
printf会按照格式字符串中的指定的规则,将自身及后续参数值输出到标准输出。
返回值为实际输出变量的个数。

2 fprintf。
C语言的标准格式化输出到文件函数。调用格式为
int fprintf(FILE *fp, char * format_string, ...);
与printf类似,也是根据格式字符串将后续参数输出,不过目标不是固定的标准输出,而是由fp指定的文件。
所以,fprintf的第一个参数设置为stdout时,与printf功能相同。

3 以上两个函数,在C++中同样支持,使用方法相同。不过C++中更推荐使用流对象cout来执行输出。同时使用流对象类fstream来执行文件的操作。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-23
#include "math.h"
#include "stdio.h"
void main()
{
double a=1;
double b=2;
FILE *fp;
a=b;
printf("%f",a);

fp=fopen("d:\\data.txt","w");
fprintf(fp,"%f",a);
fclose(fp);
}
这样就可以, 因为c语言要求所有的变量的定义应该放在函数的最上面,而C++支持任何地方定义变量,这也是c++对C语言的改进之处,所以直接把FILE *fp;这一句放在上面就行了。本回答被提问者采纳
第2个回答  2012-10-26
c语言必须先定义所有变量声明完后再使用,c++中则可以在使用的时候在定义!您程序里的倒数第4行定义了个double b = 2;属于c++中的规范c语言则会报错!
修改办法将 double b= 2;放到第一条执行语句之前即可
c中的格式

void main()
{
int b;

char ch;

...

...

double a;

//第一条执行语句 ,在第一条语句之后就不能再定义变量了否则就会报错

a+b;
...

...
return ;

}

c++格式
void main()
{
int b;
char ch;
double a;
//第一条执行语句 ,在第一条语句之后就可以再定义变量了在哪用到在哪定义
a+b;
int i;

for(i =0;i < 3;i++)

{
}

...
...
return ;

}追问

谢谢您的回答,请再帮我看看。

追答

c中有fprintf()用法如您上面的代码

追问

但是为什么我重新写的代码在c语言库中还是不能用呢?

追答

您用的是啥编译器?我将您的代码复制下来在vc下是可以运行的结果也是正确的!显示有啥错误?

第3个回答  2012-10-26
c中没有fprintf函数追问

c中没有fprintf吗?
可是这么用的时候就没问题啊。
#include "math.h"
#include "stdio.h"
void main()
{
double a=1;
FILE *fp;
fp=fopen("d:\\data.txt","w");
fprintf(fp,"%f",a);
fclose(fp);
}

追答

你用的是文件输出

第4个回答  2012-10-26
在C中应把
double b=2;
移到
可执行语句之前:
double a=1;
double b=2;
...追问

感谢更正,但是请再帮我看看。

本回答被网友采纳
相似回答