什么';s在带有scanf的xcode控制台中,何时需要一个数字但输入一个字符?
xcode 5.0 当我运行以下代码时:什么';s在带有scanf的xcode控制台中,何时需要一个数字但输入一个字符?,xcode,macos,console,Xcode,Macos,Console,xcode 5.0 当我运行以下代码时: void guessNum(){ int answer = 0; int guess = 0; int turn = 0; answer = arc4random() % 100 + 1; while (guess != answer) { turn++; NSLog(@"Guess #%i: Enter a number between 1 and 100", turn);
void guessNum(){
int answer = 0;
int guess = 0;
int turn = 0;
answer = arc4random() % 100 + 1;
while (guess != answer) {
turn++;
NSLog(@"Guess #%i: Enter a number between 1 and 100", turn);
scanf("%i", &guess);
if (guess > answer) {
NSLog(@"Lower!");
}
else if (guess < answer) {
NSLog(@"Higher!");
}
else {
NSLog(@"Correct! The answer was %i", answer);
}
} // end of while loop
NSLog(@"It took you %i tries", turn);
}
有什么问题吗?读取您键入的输入,并且由于您的“%i
”(整数)格式字符串,希望获取该输入并将其放入一个数字中
如果使用“%s
”作为格式字符串,则将输入作为C样式的字符数组(如果要从中获取整数值,则必须转换这些字符)
例如,您可以替换此行:
scanf("%i", &guess);
比如说:
char stringToConvert[256]; // if you type more than 256 characters, you'll crash
sscanf("%s",&stringToConvert);
guess = atoi(stringToConvert); // this function converts the string into an integer
如果键入字符“
a
”,.什么是“将其放入数字”?这个程序应该输入一个并打印答案,为什么它会自动运行呢?
char stringToConvert[256]; // if you type more than 256 characters, you'll crash
sscanf("%s",&stringToConvert);
guess = atoi(stringToConvert); // this function converts the string into an integer