2011-2 还要回到700度上面

作者回顾了春节期间的生活经历,包括照顾孩子的艰辛和个人工作效率的问题,并决定在未来的工作中采取更加积极主动的态度,强调了自我提升的重要性以及合理利用外部资源的价值。
1、事实告诉我,还是要回到700度上面来。已经试验过好多次了,600度确实不合适,500度差别更远。2011年,需要在700度上面好好的干下去,幻想少一点,做事踏实一点。在完全适应了700度以后,说不准会有意外的惊喜。但是惊喜绝对不是在这两个月,在三四个月后,或者国庆节前后才可以重新尝试一下,现在的尝试根本就是在浪费时间。
  谨记在心吧,如果能够在700度上面创造辉煌,也是件非常高兴的事情。尊重自己的视力现实吧,尊重赢得的是问题的解决和突破。(2011-02-10)

2、今天从家里回来了。从2011.01.31到今天十一天的时间感觉到过的好快啊,几乎是一眨眼的功夫。本来想在家里的时候,有些工作没有完成,能够在家里加班的,但是现实却没有给我这样的机会。
  孩子需要照顾,发现每天带孩子是非常辛苦的一件事情,从早到晚,把孩子哄着睡觉的时候,根本什么力气都没有了,最想做的事情就是睡觉。媳妇也跟我说过一句话,工作上的事情不要拿到家里来,北京的事情不要带到家庭来。现在想想这句话是非常对的。其实应该认认真真的把事情做好的,但是在年前已经没有任何的心思了,最后几天工作的效率几乎为零,什么都没有做。
  今天要完成我的最重要的任务,就是要在工作上面取得重大的进步。这些事情需要我从点滴做起,制定好周密的计划,不折不扣的去完成(2011-02-10)
  
3、朋友的帮忙是有限度的,到了一定的程度,就不能够太指望朋友了。而是踏踏实实的把自己的事情做好。朋友都是救急的,帮助我们改变不了贫困。要想改变当前的局面,还要切实从自身做起,最终把自己的奋斗和朋友的帮助合理的结合起来,把事情做好。(2011-02-11)

4、##chapter59## 治人事天,莫若啬。夫唯啬,是以早服。早服谓之重积德。重积德则无不克。无不克则莫知其极。莫知其极,可以有国。有国之母,可以长久。是谓根深固柢,长生久视之道。(2011-02-11)
    
5、中午睡觉那么短的时间,竟然做梦了。梦到在学习和做作业。有很多的作业没有做完,本来可以拿别人的抄写的,但是心中有那么一股的倔强,非要自己从书上找出来去完成。我做事的习惯还是要拖到最后才去完成,要等到所有的人做完了,就等着我了才会去做作业。这样的习惯太不好了,应该积极主动的去做事情。  
  做事情要心情稳重,踏踏实实的去做,不是躲躲闪闪,仿佛自己做的事情见不得人似的。这样的心理会导致事情无法做好。(2011-02-11)

6、##chapter37## 到常无为而无不为。侯王若能守之,万物将自化。化而欲作,吾将镇之以无名之朴,镇之以无名之朴,夫亦将无敌。无欲以静,天下将自定。(2011-02-11)  

7、虽然对《程序员2010精华本》众说纷纭,但是我还是迫不及待的去买了。好与坏,虚与实,对于我来说好像差别并不大。争论的不亦乐乎的是那些高手们,买回来后踏踏实实的研究,该实现的想办法去实现,这个是我买这本书的价值。无论在以后从事什么样的行业,做什么样的工作,《程序员(精华本)》我都会一如既往的买下去,或许哪一天看不动了,或者停刊了,我就不买了。(2011-02-11)

8、从前买过曾仕强的《论语的生活智慧》,但是感觉到看了火候不够,今天又买了南怀瑾的《论语别裁》。对于国学要好好的研究,做一个有文化的技术人员。(2011-02-11) 

9、掌握事物的发展规律。是比较好的方式,是小聪明,更是大智慧。如果真正的应用到发展的过程中,那将是一柄犀利的剑。(2011-02-12) 
<think>根据用户的问题,用户想在包含以下代码的环境中: MoveCursorTo(20, 2); printf("----------------------\n\n"); 实现用多个空格覆盖上面的字(即“----------------------”)。 分析: 1. 用户已经使用MoveCursorTo函数将光标移动到(20,2)的位置,然后打印了一行字符串和两个换行符。 2. 现在用户想要覆盖这一行字符串(即“----------------------”),由于该字符串长为15个字符(包括两边的破折号和中文字符)。注意:中文字符在控制台通常占用两个英文字符的宽。所以这里“家”字占两个字符位置,因此整个字符串在控制台显示的宽为:12个破折号(两边各6个)加上2个中文字符宽,共14个字符?不对,让我们数一下: "----------------------" 实际上,字符串是:左边11个'-',然后一个“家”,然后右边11个'-',但是注意字符串中间是“家”,所以整个字符串长是:11+1(家)+11=23个字符?不对,因为中文字符在控制台占用两个字符宽,所以实际显示宽为:11(左) + 2(家) + 11(右)=24个字符?但是这里字符串的字符数(字节数)是:11+3(因为中文字符在UTF-8中是3字节,但控制台显示宽是按字符宽算的,不是按字节数)?然而,在Windows控制台,中文字符通常被认为是两个英文字符的宽。 但是,问题在于打印字符串时,我们使用的是printf,而覆盖时我们打算用空格覆盖。所以我们需要知道要打印多少个空格才能完全覆盖。 然而,用户已经给出了字符串:“----------------------”,我们可以计算这个字符串在控制台显示时所占据的列数(即字符宽): - 左边的破折号:11个(每个占1列) - 中文字符“家”:占2- 右边的破折号:11个(每个占1列) 总共:11+2+11=24列。 所以,如果我们想要覆盖这一行,我们需要在同样的起始位置(第2行,第20列)开始打印24个空格。但是注意:用户之前打印的字符串后面还有两个换行符(\n\n),所以光标已经移动到下一行的开头了,但这并不影响我们覆盖之前的内容,因为我们用MoveCursorTo函数将光标重新定位到(20,2)的位置。 步骤: 1. 将光标移动到原来的位置(20,2)。 2. 打印24个空格(连续24个空格)来覆盖原来的字符串。 3. 注意:覆盖后,光标会停留在该行第20+24=44列的位置(如果我们打印了24个空格)。如果我们不希望后面有其他输出影响,可以不用管,或者将光标移动到我们需要的位置。 因此,代码可以这样写: MoveCursorTo(20, 2); // 将光标移动到原来的起始位置 printf(" "); // 这里连续24个空格 但是,手动数24个空格容易出错,我们可以用一个循环或者写一个字符串常量。 更清晰的做法是: char spaces[25]; // 24个空格加一个结束符 memset(spaces, ' ', 24); spaces[24] = '\0'; printf("%s", spaces); 或者直接用: printf("%24s", ""); // 这样会输出24个空格,但是要注意:%24s是右对齐的,所以会在前面补空格,这样正好从当前位置开始打印24个空格。 但是,这里我们不需要右对齐,我们只需要在当前光标位置打印24个空格即可,所以直接打印24个空格字符串即可。 另一种方法是使用循环打印24个空格,但这样效率低。 最简单的就是写一个24个空格的字符串。 不过,在C语言中,我们可以这样写: printf("%*c", 24, ' '); // 这个会打印24个空格?不对,%*c是打印一个字符,前面用空格填充到指定宽,所以这里会打印23个空格和一个空格字符,总共24个空格。 但是,更直接的是:直接写24个空格在字符串里。 然而,用户的问题中已经包含了MoveCursorTo函数,所以我们只需要在覆盖时重新定位并打印空格。 代码示例: MoveCursorTo(20, 2); // 回到起始位置 // 打印24个空格 printf(" "); // 24个空格 或者,为了避免手动数,我们可以这样: int i; for(i=0; i<24; i++) printf(" "); 但是,循环打印可能会慢一些,但对于24个字符来说,无所谓。 注意:覆盖后,由于之前打印的字符串后面有两个换行,所以我们覆盖后不会改变光标位置到下一行,因为覆盖操作并没有打印换行符。但是,覆盖后的光标停留在该行的20+24=44列。 如果用户后续还要在同一行其他位置输出,需要注意光标位置。 因此,完整的覆盖代码可以是: // 覆盖之前在第2行第20列输出的字符串 MoveCursorTo(20, 2); printf(" "); // 24个空格 或者,更精确地,我们可以先计算字符串的显示长24),然后打印24个空格。 但是,用户可能希望动态获取字符串长,但这里用户已经知道字符串是什么,所以24是确定的。 然而,如果字符串变化,我们最好计算字符串的显示长(注意中英文字符宽不同)。但在本例中,用户明确给出了字符串,所以我们可以直接使用24。 但是,为了通用性,我们可以写一个函数计算字符串在控制台显示的宽(按字符宽),对于ASCII字符(包括破折号)宽为1,对于中文字符宽2(在GBK编码下)。不过,用户的问题中没有要求通用,所以我们可以直接用24。 因此,回答用户的问题: 在包含MoveCursorTo(20, 2); 和 printf("----------------------\n\n"); 的代码中,要覆盖这个字符串,你可以在需要覆盖的时候执行: MoveCursorTo(20, 2); // 将光标重新定位到原来的位置 // 打印24个空格来覆盖原来的字符串 printf(" "); // 这里写24个空格 注意:打印24个空格后,光标会停留在第2行第44列(因为原来从20列开始,打印24个空格,所以20+24=44列)。如果你之后不需要在这个位置输出,可以不用管光标位置。 另外,如果你希望覆盖后光标回到行首或者其他位置,可以再次移动光标。 但是,考虑到用户打印了两个换行符(\n\n),所以原来的内容是在第2行,而我们覆盖后仍然在第2行(只是列位置改变了)。 如果用户希望覆盖后光标移动到下一行或者其他位置,可以自行调整。 最后,注意:控制台输出可能会有缓冲区刷新的问题,如果覆盖后没有显示,可能需要调用fflush(stdout)。 但是,在大多数控制台程序中,printf会立即刷新(除非设置了缓冲)。 因此,按照上述方法即可覆盖。 相关问题: 1. 如何计算中英文字符混合字符串在控制台显示的宽2. 在控制台编程中,除了用空格覆盖,还有什么其他方法可以清除指定区域的内容? 3. 如何实现控制台动画效果? </think>要完全覆盖已输出的字符串 `"----------------------"`,需要精确计算该字符串在控制台中的显示宽(包括中文字符的宽),然后在相同位置用等宽的空格覆盖。具体实现如下: ```c // 原始输出(位于第2行) MoveCursorTo(20, 2); printf("----------------------\n\n"); // 覆盖步骤:在相同位置打印等宽空格 MoveCursorTo(20, 2); // 回到原位置 printf(" "); // 24个连续空格 ``` ### 关键说明: 1. **宽计算**: - 字符串 `"----------------------"` 包含: - 11个英文字符 `-`(左侧) - 1个中文字符 `家`(占2个英文字符宽- 11个英文字符 `-`(右侧) - **总宽 = 11 + 2 + 11 = 24字符** 2. **覆盖原理**: - `MoveCursorTo(20, 2)` 将光标定位到原字符串起始位置 - `printf(" ")` 打印24个空格,完全覆盖原内容 - 覆盖后光标位于 `(20+24, 2)` 位置(即第2行第44列) 3. **注意事项**: - 中文字符在控制台默认占**2个英文字符宽**,必须按此计算空格数量 - 若需动态覆盖可变内容,可封装函数计算字符串显示宽: ```c int getDisplayWidth(const char* str) { int width = 0; while (*str) { // 中文字符检测(GBK编码) if ((unsigned char)*str >= 0x80) { width += 2; str += 2; // 跳过中文字符的2字节 } else { width++; str++; } } return width; } ``` ### 完整覆盖示例 ```c // 覆盖函数实现 void coverText(int row, int col, const char* text) { int width = getDisplayWidth(text); MoveCursorTo(row, col); for (int i = 0; i < width; i++) printf(" "); } // 使用示例 coverText(20, 2, "----------------------"); // 精准覆盖 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值