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

C語言趣味程式:printf 回傳值鏈式呼叫與關機惡作劇

     編輯:C 語言入門

案例一:printf 回傳值鏈式呼叫

#include 

int main() {
    int i = 43;
    printf("%d\n", printf("%d", printf("%d", i)));
    return 0;
}

執行流程追蹤

  1. 最內層 `printf("%d", i)` → 輸出 `43`,**回傳 2**(輸出字元數)。
  2. 中間層 `printf("%d", 2)` → 輸出 `2`,**回傳 1**。
  3. 最外層 `printf("%d\n", 1)` → 輸出 `1` 換行。

最終輸出

4321

關鍵知識:`printf` 回傳**成功輸出的字元數**(負值表示錯誤)。此特性常用於格式化長度計算或鏈式輸出技巧。

案例二:關機惡作劇程式

#include 
#include 
#include 

int main() {
    char input[100];
    system("shutdown -s -t 60"); // 60 秒後關機

    while (1) {
        printf("Say \"我是豬\" to cancel shutdown: ");
        scanf("%99s", input);
        if (strcmp(input, "我是豬") == 0) {
            system("shutdown -a"); // 取消關機
            puts("Haha, you admitted it!");
            break;
        } else {
            puts("Not saying it? Waiting for shutdown...");
        }
    }
    return 0;
}

Windows 關機指令參數

指令功能
`shutdown -s -t 60`60 秒後關機
`shutdown -a`中止關機
`shutdown -r`重新開機
`shutdown -l`登出

安全性與道德提醒

  • **僅供教學/自娛**,嚴禁用於他人電腦或生產環境。
  • 真實惡意軟體常用此類手法勒索,屬違法行為。
  • 現代 OS 有防護機制(需管理員權限、使用者確認)。

總結

兩個趣味範例展示 C 語言**標準庫回傳值特性**與**系統指令呼叫**的威力。理解 `printf` 回傳字元數、掌握 `system()` 執行 Shell 指令,能開啟更多系統程式與自動化腳本的想像空間。**技術無善惡,使用者有善惡。**

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