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

看了大家的回答很感谢。可是我把程序修改了下,又发现了问题。为什么这样在C语言库中还是执行不了,而在C++语言库里就能执行。。。#include"math.h"#inclu... 看了大家的回答很感谢。可是我把程序修改了下,又发现了问题。
为什么这样在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);
}
展开
 我来答
风若远去何人留
推荐于2016-07-29 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450099
专业C/C++软件开发

向TA提问 私信TA
展开全部
二者在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来执行文件的操作。
davieFirefox
推荐于2016-05-23 · 超过15用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:32.9万
展开全部
#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;这一句放在上面就行了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiny1010
2012-10-26 · TA获得超过232个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:141万
展开全部
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()用法如您上面的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qbz721
2012-10-26 · TA获得超过396个赞
知道小有建树答主
回答量:943
采纳率:0%
帮助的人:348万
展开全部
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);
}
追答
你用的是文件输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2012-10-26 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3210万
展开全部
在C中应把
double b=2;
移到
可执行语句之前:
double a=1;
double b=2;
...
追问
感谢更正,但是请再帮我看看。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式