И тут я подумала, что у меня есть опыт в ObjC, и эта маленькая проблема типа C дает мне припадки.:) Эта программа предназначена для чтения символов из пользовательского ввода и печати выражения, которое дает десятичное значение символа.Эта программа генерирует дубликаты операторов NSLog (), и я не могу понять, почему:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
char a;
for (int i = 1; i <= 10; i++)
{
NSLog(@"Type in an ASCII character or type 'command-.' to exit.");
scanf("%c", &a);
NSLog(@"%c = %d", a, a);
}
[pool drain];
return 0;
}
Вот вывод:
Type in an ASCII character or type 'command-.' to exit.
a
a = 97
Type in an ASCII character or type 'command-.' to exit.
= 10
Type in an ASCII character or type 'command-.' to exit.
Когда я изменяю переменную для чтения изchar в int и внесите соответствующую модификацию спецификатора формата в scanf (), программа запускается в консоли, как и предполагалось.(Запрашивать у пользователя символ, распечатывать значение и снова запрашивать.) Как только я возвращаюсь к символу, он делает это.Что я делаю неправильно?Кроме того, независимо от того, какой тип символа я ввожу, всегда есть выход "= 10".Что за дело с этим?Заранее спасибо, ребята.