首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Objective-C 終端交互:scanf 配合 NSLog 實現輸入輸出緩衝

     編輯:關於C語言

最小可運行示例

#import <Foundation/Foundation.h>

int main(int argc, char *argv[]) {
    @autoreleasepool {
        NSLog(@"請輸入您的帳號:");
        int account = 0;
        scanf("%d", &account);
        NSLog(@"您輸入的是 %d", account);
    }
    return 0;
}

關鍵點解析

  • @autoreleasepool:ARC 環境下管理臨時對象釋放
  • NSLog:輸出到 stderr,帶時間戳和進程信息
  • scanf:直接讀取 stdin,繞過 Cocoa 文本系統
  • 混用注意:NSLog 不刷新 stdout,scanf 讀 stdin,通常無衝突

工程級輸入封裝

NSString *readLine() {
    char buf[1024];
    if (fgets(buf, sizeof(buf), stdin)) {
        buf[strcspn(buf, "\n")] = '\0';  // 去換行
        return [NSString stringWithUTF8String:buf];
    }
    return nil;
}

/* 使用 */
NSLog(@"請輸入姓名:");
NSString *name = readLine();
NSLog(@"你好,%@!", name);

進階:非阻塞/超時輸入

需用 select/poll 監聽 STDIN_FILENO,或另開線程讀取配合信號量通知主線程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved