C中奇怪的printf输出(未知字符和符号)

时间:2013-10-28 06:05:01

标签: c printf output

我刚开始得到一个奇怪的printf输出,有没有人见过这个?知道它可能是由什么造成的吗? http://imgur.com/4Mt6xdi

修改

这是代码。我是新来的,所以如果有什么(即使它不会导致错误)看起来错误或不常见请告诉我。

       printf(f2,"%8.31f\t%8.31f\n",x[0],x[2]);
       fprintf(f2,"%8.31f\t%8.31f\n",x[1],x[2]);

2 个答案:

答案 0 :(得分:2)

在您编写的代码中:

if (x[0]*oldx<0)
{
   printf(f2,"%8.31f\t%8.31f\n",x[0],x[2]);
   fprintf(f2,"%8.31f\t%8.31f\n",x[1],x[2]);
}

其中f2是指向FILE的指针,不应作为printf的第一个参数传递。只需删除它。

答案 1 :(得分:1)

第96-97行至少有一个问题:

   printf(f2,"%8.31f\t%8.31f\n",x[0],x[2]);
   fprintf(f2,"%8.31f\t%8.31f\n",x[1],x[2]);

第一行应调用fprintf,而不是printf

任何编译器都应该至少给出一个警告,以printf作为第一个参数调用FILE*。你有没有看到这样的警告?如果是这样,你为什么忽略它呢?

在启用其他警告的情况下进行编译应该会向您显示许多其他问题。在做其他任何事情之前解决这些问题。