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; }