0

我已经从代码中删除了 scanf 并且程序的其余部分运行没有问题。当代码到达 scanf 并且我输入一个数字后,xcode '失去连接'并显示错误“程序以退出代码结束:-1”。我还尝试将“输入”设置为 int,更改输入变量的名称以防出现冲突,并在代码中不使用 fflush 进行尝试。我在 Oracle VM Virtualbox 上运行 Mountain Lion,并且我的计算机在 Windows 7 上,如果相关的话。

我究竟做错了什么?

#import Foundation/Foundation.h
#include stdio.h

int main(int argc, const char * argv[])

{

    @autoreleasepool {

        float input = 1;
        int i = 0;
        float total = 0;
        int max = 0;
        int min = 1000;


        while (input != 0){
            NSLog(@"Please put in a number. \n");
            scanf("%f", &input);

            fflush(stdin);

            if(input > max){
                max = input;
            }
            if(input < min){
                min = input;
            }
            total = total + input;
            i++;

        }

        printf("The number of entered numbers was %i \n", i);
        printf("The sum of the entered numbers is %f\n", total);
        total = total/i;
        printf("The average of all the numbers is %f\n", total);
        printf("The highest number entered is %i\n", max);
        printf("The lowest number entered is %i\n", min);


    }

    return 0;
}
4

2 回答 2

0
fflush(stdin);

你可能想要

fflush(stdout)

我不确定 fflush() 对打开输入的 FILE* 会做什么。这可能是也可能不是您的问题的原因。

于 2013-10-10T01:57:01.140 回答
0

Return 和 Enter 键在 Xcode 中具有不同的含义。您转到产品菜单并选择构建构建以运行并在终端中执行它会正常工作。

在 Xcode 中,小键盘中的 Enter 键以 -1 返回码停止程序。我不确定这是错误还是功能,但我在 Xcode 的键绑定中找不到键。

在这里查看

于 2013-10-29T13:12:43.277 回答