fprintf的错误 error C2664

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:08:04
请问高手们```为什么运行下面程序时出现cpp(44) : error C2664: 'fprintf' : cannot convert parameter 1 from 'char [13]' to 'struct _iobuf *'??问题就是在那个fprintf()里面```到地是什么错误呢`要怎么修改才能正常运行呢???

# include <iostream.h>
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
# define L 21

struct inf
{
char Z [L];
char A1 [L];
char A2 [L];
char B [L];
} * P;

void main()
{
int i;
struct inf str;
P= &str;
char KEY [L]="123456789";
P=(struct inf*) malloc (sizeof(struct inf));
FILE * fp1,*fp2;
fp1=fopen ( "G:\\123\\123.txt","r" );
if (fp1==NULL)
{
cout<<"打开失败!";
getch ();
exit (1);
}
fscanf (fp1,"%s%s%s%s%",P->Z,P->A1,P->A2,P->B);
fclose (fp1);
for ( i=0; i<L; i++ ) P->Z [i]^=KEY [i]; //位或加

fprintf ("%s\n%s\n%s\n%s\n",P->Z,P->A1,P->A2,P->B);
改为:
printf("%s\n%s\n%s\n%s\n",P->Z,P->A1,P->A2,P->B);
或者
fprintf (fp2,"%s\n%s\n%s\n%s\n",P->Z,P->A1,P->A2,P->B);//出现错误的地方

fprintf 少了一个必要的参数输出流stream

声明如下所示:int fprintf (Stream, Format, [Value, ...])
stream参数可以是文件指针,也可以是标准输出stdout。
如果你要是将信息打印到屏幕则应该这么写
fprintf(stdout, "%s\n%s\n%s\n%s\n",P->Z,P->A1,P->A2,P->B);
或者直接用printf
printf ("%s\n%s\n%s\n%s\n",P->Z,P->A1,P->A2,P->B);

fprintf ("%s\n%s\n%s\n%s\n",P->Z,P->A1,P->A2,P->B)改为它fprintf (fp2,"%s\n%s\n%s\n%s\n",P->Z,P->A1,P->A2,P->B);
就是在前面加了个参数.就是fprintf 不太了解.
你可以参考下面网侄的内容
fprintf函数的简单问题。 C:用fprintf写文件的问题 关于MATLAB数据结果的输出问题(fprintf) 电脑开机的时候出现CPU FAN ERRO。。这是什么意思 电脑开机的时候出现CPU FAN ERRO.. 佳能canon EOS 30D单反出现ERRO 99错误是什么原因? erro英译 fprintf()中的 stderr ?? fscanf和fprintf fprintf函数困惑