1.背景小程序
2.開始使用ide
gdb 二進制文件 退出:ctrl+d 或 quit
調試命令:函數
1.打印字符串時帶 '\n'ui
#include <stdio.h> #include <unistd.h> int main() { printf("hello world!\n"); sleep(3); return 0; }
運行結果:
這裏咱們觀看到結果:先顯示出打印結果並換行,5秒後程序運行結束。debug
2.打印字符串時不帶 '\n'調試
#include <stdio.h> #include <unistd.h> int main() { printf("hello world!"); sleep(3); return 0; }
運行結果:
這裏輸出結果爲,前五秒什麼都沒輸出,5秒後打印出字符串內容,可是不曾換行。code
3.打印字符串時帶 '\n' && fflush刷新緩衝區blog
#include <stdio.h> #include <unistd.h> int main() { printf("hello Makefile!"); fflush(stdout); sleep(3); return 0; }
運行結果同第二個,可是現象爲,先打印字符串內容,五秒後程序退出,而且也沒有換行。字符串
4.打印字符串時帶 '\r'string
#include <stdio.h> #include <unistd.h> int main() { printf("hello chuizi!\r"); sleep(3); return 0; }
運行結果爲,未打印出字符串內容,五秒後程序退出,仍未顯示出字符串的內容。此處不方便演示,讀者可自行驗證。
5.打印字符串時帶 '\r' && fflush刷新緩衝區
#include <stdio.h> #include <unistd.h> int main() { printf("hello chuizi!\r"); fflush(stdout); sleep(3); return 0; }
運行結果:
運行結果爲,先打印出字符串內容,而後五秒後內容清空。這裏咱們注意到光標在h位置,那麼從這能夠看出:/r是隻回車(讓光標回到這一行的初始位置),/n是回車加換行。
#include <stdio.h> #include <unistd.h> #include <string.h> int main() { int i = 0; char bar[102]; memset(bar,'\0',sizeof(bar)); const char*lable = "|/-\\"; int j=0; int color[]={1,2,3,4,5,6,7}; for(; i <= 100; i++) { bar[i] = '*'; printf("\033[3%dm[%-101s]\033[0m\033[33m[%d%%]\033[0m[%c]\r", color[j],bar,i,lable[i%4]); fflush(stdout); if(i%15 == 0){ ++j; } usleep(100000); } printf("\n"); return 0; }