2

この一見些細なコードは教科書からコピーされたものですが、Xcode が scanf() で入力を取得した後、プログラムはエラー コード -1 で終了し、「接続が失われました」と表示されます。

#import <Foundation/Foundation.h>

int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]init];

int number;

NSLog(@"Type in your number: ");
scanf("%i", &number);

if (number < 0)
    number = -number;

NSLog(@"The absolute value is: %i", number);
[pool drain];
return 0;

}

アップデート

OSを最初から再インストールしました。10.8.5 と Xcode 5 — まだ同じ問題です。Xcode 4.6.3 をインストールしました。同じ問題で、エラー メッセージが表示されず、プログラムが終了します。

また、新しい空のプロジェクトにまったく新しいプログラムを書きました。この問題は、scanf 関数が呼び出されたときにのみ発生します。

4

1 に答える 1

8

プログラムは整数値の入力を想定しているため、キーボード (テンキー) の「Enter」キーを押していました。scanf メソッドは、「Return」キーが押された後にユーザー入力を終了します。どちらも「Enter」キーと呼ばれることが多いですが、このコンテキストでは動作が大きく異なります。

また、「Enter」キーを使用する場合は、入力の最後にスラッシュを追加してから「Enter」を押すと、「Return」キーと同じ結果が返されます。

愚かな私。

于 2013-10-01T07:12:58.473 に答える