当试图输出一个整数时,它会输出一个数字数组到一个文件

Posted

技术标签:

【中文标题】当试图输出一个整数时,它会输出一个数字数组到一个文件【英文标题】:When trying to output an integer, to a file it outputs an array of numbers 【发布时间】:2022-01-14 19:47:35 【问题描述】:

我正在编写一个函数,该函数将为用户提供从列表中选择项目的选项。 选择选项时,它应该调用专用函数来询问项目的数量,然后将其输出到文件。下面是两个函数。

void pos2()
 
    int choice;
    printf("\n Enter The item : ");
    scanf("%d", &choice);

    switch (choice) 
    case 1:
        apple();
        break;

    case 2:
       editInventory();
        break;


    case 3:

        printf("\n Returning... \n\n");
        printf("Returning in 3 seconds...\n");
        Sleep(3000);
        system("cls");
        printMenu();


    default:
        system("cls");
        printf("\ninvalid choice Try again \n");
        printMenu();
    


    void apple()

        FILE*out=fopen("pos.txt","w");
        int amt;
        printf("Apple Choosen\n");
        printf("Enter the Amount\n");
        scanf("%d",&amt);
        fprintf(out,"%d",&amt);

在这种情况下,用户现在只能选择 1,这将要求他们输入苹果的数量,然后输入,它会将值保存到名为 pos.txt 的文本文件中。当我输入一个金额时,似乎我得到了地址值或某种数组作为回报。这是文本文件中的输出:

6421716

如果有人可以提供帮助或指导我正确的方向,我将不胜感激。提前致谢

【问题讨论】:

fprintf(out,"%d",&amt); 删除 &。你的编译器应该会警告你,查看如何打开所有警告。 很遗憾,我没有收到任何警告。我现在就这样做,非常感谢。 【参考方案1】:

好消息,@Passerby (https://***.com/users/17196203/passerby) 在我的问题下评论了解决方案。

这里的问题是我的fprintf(out,"%d",&amt); 中的& 导致输出奇怪的数字。再次感谢所有帮助我解决这个问题的人,并特别感谢 @Passerby 的解决方案。

【讨论】:

以上是关于当试图输出一个整数时,它会输出一个数字数组到一个文件的主要内容,如果未能解决你的问题,请参考以下文章

数字为 sum s 的 k 位整数数组

int的打印数组会在ada中生成奇怪的输出

在数组中添加连续整数对的分治算法时遇到问题

输出在数组中不断重复

66.加一

算法:从数组中删除重复整数的有效方法