查看: 617|回复: 0

[IOS开发教程] Objective-c 中scanf 在循环中的使用问题及解决方法

发表于 2018-1-29 08:00:02

有的时候, 在循环中scanf获取用户输入的数据时会遇到 scanf只被执行一次,第二次执行时就直接跳过去不执行的情况。在这种情况下严重的会导致程序无限死循环进尔导致程序崩溃。

出现该问题时, 解决方式是在scanf语句前加上 rewind(stdin)。
比如:

  1. do {
  2. NSLog(@"请输入你要观看的电影编号:");
  3. option = self.scanInputInt;
  4. }while(option == -1);
  5. //scanInputint 方法:
  6. -(int)scanInputInt {
  7. int userInput = -1;
  8. rewind(stdin);
  9. scanf("%d", &userInput);
  10. if (userInput != -1) {
  11. }else {
  12. NSLog(@"输入错误请重新输入\n");
  13. return -1;
  14. }
  15. return userInput;
  16. }
复制代码


回复

使用道具 举报