控制台同一位置打印输出,例如:进度1%->100%在同一位置显示。刚学习c语言的时候一直想做起来,可惜查询好多资料不行。时隔6年多,空闲之余又想起这个问题,便决定一试,虽然c语言已经几乎忘光了,呵呵。最终还是搞定了,这次运气不错,哈哈! ^_^

#include <stdio.h>
#include <pthread.h>
//#include <sys/time.h> //linux for sleep(seconds) and usleep(Microsecond)
//#include <unistd.h> //windows for Sleep(millisecond)
//#include <windows.h> //创建线程函数返回类型
pthread_t thread[]; /**
* 线程函数
**/
void *printThread(){
printf("%s\n","线程开始处理任务"); printf("已经处理了:");
for(int i = ; i <= ; i++) {
if(i==){
//数字占3格,%占一格
printf("%3d%%",i);
}else{
//退4格
printf("\b\b\b\b%3d%%",i);
}
//即时标准输出(不带\n,不刷新不行)
fflush(stdout);
//延时1秒
sleep();
}
} int main(){ printf("我是主函数哦,我正在创建线程,呵呵\n");
/*创建线程*/
if(pthread_create(&thread[], NULL, printThread, NULL)!=){
printf("线程创建失败\n");
}
printf("线程创建成功\n"); printf("我是主函数哦,我正在等待线程完成任务阿,呵呵\n");
/*等待线程结束*/
pthread_join(thread[],NULL);
printf("\n线程已经结束\n"); return ;
}

代码是在mac os下测试成功的。window系统需要在编译器中引入pthread库,可参考:https://yq.aliyun.com/articles/35576。

简版

#include <stdio.h>

int main(){

    printf("已经处理了:");
for(int i = ; i <= ; i++) {
if(i==){
//数字占3格,%占一格
printf("%3d%%",i);
}else{
//退4格
printf("\b\b\b\b%3d%%",i);
}
//即时标准输出(不带\n,不刷新不行)
fflush(stdout);
//延时10000微妙 = 10豪秒 = 0.01 秒
//usleep(10000);
//延时模拟
int times = ;
while(times-->){ } } return ;
}

c语言printf实现同一位置打印输出的更多相关文章

  1. C语言printf()函数:格式化输出函数

    C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为:     int printf( char ...

  2. C 语言 printf格式控制详解

    闲来无事,整理了一下C语言printf() 的格式控制语句. PS:详细来源于网络. printf的格式控制的完整格式: %  -  0  m.n  l或h  格式字符 下面对组成格式说明的各项加以说 ...

  3. C语言Printf格式

    使用printf打印时发现,如果数据类型和打印使用的类型不一致,结果就是混乱的. 这是因为printf本身并不进行数据的类型转换,他只是把输入按照给定的数据格式输出,如果二者不匹配,那么由于不同数据类 ...

  4. C语言 printf 格式化输出函数

    用 法: int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h| ...

  5. C语言 · 确定元音字母位置

    算法训练 确定元音字母位置   时间限制:1.0s   内存限制:512.0MB      输入一个字符串,编写程序输出该字符串中元音字母的首次出现位置,如果没有元音字母输出0.英语元音字母只有‘a’ ...

  6. C语言printf用法详解

    #include <stdio.h> int main() { printf("%s","hello world1!\n");//%s字符标志可省略 ...

  7. c语言printf输出最前端字符不显示

    原因:语法错误,和其它语言语法混用. printf("链表长度 : %d \n",length); printf("length is : %d \n",len ...

  8. C语言printf()输出格式大全

    1.转换说明符       %a(%A)     浮点数.十六进制数字和p-(P-)记数法(C99)       %c             字符       %d             有符号十 ...

  9. C语言中链表任意位置怎么插入数据?然后写入文件中?

    链表插入示意图:(图是个人所画)因为链表指针指来指去,难以理解,所以辅助画图更加方便. 插入某个学号后面图: 定义的结构体: struct student { ]; //学生学号 ]; //学生姓名 ...

随机推荐

  1. VMware安装linux系统报错:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

    检测问题所在: 下载LeoMoon CPU-V 检查一下CPU VT-x状态是否启用 地址:http://download.csdn.net/detail/qq_22860341/9858011 如果 ...

  2. 点击事件获得li标签内容

    通过点击事件获得li标签内容 Table of contents 随笔 随笔 <li onclick="liClick(this)">数据</li> //点 ...

  3. PowerBuilder中新建PBL

    首先需要打开工作区间workspace , 然后选择你的第一个根pbl文件. 如图所示: 选择WorkSpace下的第一个application.PBT文件,然后单击鼠标右键,选择属性Properti ...

  4. Codeforces - 914C 数位DP

    题意有点难以描述,简略的就是给定一个二进制\(n\),每一步操作能使\(n\)的位为1的数的和转化为一个十进制,然后转化为该数的二进制再进行相同的操作 查询\([0,n]\)中操作数恰好为\(k\)的 ...

  5. odoo 二次开发的一些原理

    一:self是什么 目前新版的Odoo中使用到的self,是对  游标cr.用户ID.模型.上下文.记录集.缓存  的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr. ...

  6. 在win7系统设置SQL Server2014 express为远程数据

    如何设置远程访问到SQLserver服务器(局域网内的设置) 1.首先,使用Windows+R键 输入services.msc 打开本地服务. *说明:①MSSQLSERVER是正式使用的SQL创建实 ...

  7. 《数据密集型应用系统设计》读书笔记-ch1可靠、可扩展与可维护的应用系统

    我们以Twitter为例,使用其2012年11月发布的数据.Twitter的两个典型业务操作是: - 发布tweet消息: 用户可以快速推送新消息到所有的关注者,平均大约4.6k request/se ...

  8. 用代码如何检测一个android程序是否在运行

    /** * 检测一个android程序是否在运行 * @param context * @param PackageName * @return */ public static boolean is ...

  9. Net操作Excel,不依赖服务器端环境配置(终极方法NPOI)转。

    这是起因,为什么会需要用到这个,主要是分析了一下为什么从oledb那个方式换成这个方式.文章见链接 http://www.cnblogs.com/Jerseyblog/p/6410703.html 前 ...

  10. PHP 字符串 操作符<<< 使用的注意事项

    在看<深入PHP和JQeury开发>过程中,遇到字符串 操作符<<<,代码没有问题,但格式却要求特别严格,找到PHP手册上的实例,翻译过来,留作后用. A string ...