为什么命令提示符在我开始之前显示数字?

时间:2015-06-09 07:29:11

标签: c file-io printf scanf

命令提示符在程序开始前显示数字。为什么? #include <stdio.h> #include <conio.h> int main(void){ FILE*nfPtr; int n; if ((nfPtr=fopen("c:\\Users\\raphaeljones\\Desktop\\newfile.dat","w"))==NULL) { printf ("Sorry! The file cannot be opened\n"); } else {//else 1 begin printf("Enter numbers to be stored in file\n"); printf("%d",&n); while (!feof(stdin)){ fprintf(nfPtr,"%d",n); scanf("%d",&n); } }//else 1 ends fclose(nfPtr); getch(); return 0; } 被给予 但这些数字不会写入文件?

extern "C" {
    void say_hello(const char* s);
}

2 个答案:

答案 0 :(得分:2)

除了其他问题,请在您的代码中

 printf("%d",&n);

绝对错误并调用undefined behaviour。 。也许你的意思是

 scanf("%d",&n);

扫描号码。

那就是说,请看why you should refrain from using !feof(file)

答案 1 :(得分:1)

替代

printf("%d",&n);

scanf("%d",&n);
  

printf将格式指向的C字符串写入标准输出(stdout)

     

scanf从stdin

读取数据

在您的代码中,您打印的n(未初始化)在"Enter numbers to be stored in file"字符串后打印出随机数。