http://www.56.com/u64/v_MjExODgyNTM.html
多明显的机腹进气道!!!这模型做的也真是厉害。尾冲、失速尾旋、眼镜蛇。牛啊
多明显的机腹进气道!!!这模型做的也真是厉害。尾冲、失速尾旋、眼镜蛇。牛啊
没想到打我电话了,说我没有还钱,那就这周末吧,到中国银行还钱去。。。
帐号:4050007018880280382
质询电话:62139051
估计的交500,欠款3个月了。。。该交点了。。。
帐号:4050007018880280382
质询电话:62139051
估计的交500,欠款3个月了。。。该交点了。。。
人生成功的17条金律
1、保持积极的心态
人与人之间只有很小的差别,但这种很小的差别却往往造成巨大的差异,很小的差别就是所具备的心态是积极的还是消极的,巨大的差异就是成功与失败。也就是说,心态是命运的控制塔,心态决定我们人生的成败。我们生存的外部环境,也许不能选择,但另一个环境,即心理的、感情的、精神的内在环境,是可以由自己去改造的。成功的不一定都是企业家、领袖人物。成功,是指方方面面取得的成功,其标志在于人的心态,即积极、乐观地面对人生的各种挑战。一个人如果在一生中都不具有积极的心态就可能深陷泥淖,不能自觉,不能醒悟,不能自拔,当你发现身处困境时,机会已经失去。这种败局,不仅限于事业的失败,还包括人生中为人处事的失败,心理情绪的失败、婚恋家庭的失败、人的感受的失败等。总之,凡人生感受不如意,不幸福,都可视为你人生的失败,这些失败多半源于我们与生俱来的弱者的消极心态。如果我们能够调整心态,改变处事方法,就可以避免或扭转败局,甚至可以成为推动事业成功的伟人和把握幸福人生的智者。人成功不是指拥有什么(权力、财富),而是做了什么。如果能每天在一点一滴的努力中去实现自己的目标,就可以帮助和影响他人。成功等于每天进步一点点。积极的心态包括诚恳、忠诚、正直、乐观、勇敢、奋发、创造、机智、亲切、友善、积极、向善、向上、进取、努力、愉快、自信、自勉和有安全感等。
2、要有明确的目标
有了目标,内心的力量才会找到方向,漫无目标的努力或漂荡终归会迷路,而你心中的那座无价的金矿,也因得不到开采而与平凡的尘土无异。你过去和现在的情况并不重要,你将来想获得什么成就才是最重要的。有目标才会成功,如果你对未来没有理想,就做不出什么大事来。设定目标后订出中长期计划来,而且还要怀着迫切要求进步的愿望。成功是需要完全投入的,只有完全投入到你所从事的职业中去,才会有成功的一天;只有全身心地热爱你的生活,才会有成功的一天。
3、多走些路
做个主动的人。要勇于实践,你的成功也就是因为多走了些路,找到了别人未找到的另外一点东西。抓住机会,掌握机会,做个积极主动的人,并养成及时行动的好习惯。
4、正确的思考方法
成功等于正确的思想方法加信念加行动。要想成为思想方法正确的人,必须具备顽强坚定的性格,挖掘潜力,进行“我行”、“我是优秀的”、“还须再改进”的心理暗示。
5、高度的自制力
自制是一种最艰难的美德,有自制力才能抓住成功的机会。成功的最大敌人是自己,缺乏对自己情绪的控制,会把许多稍纵即逝的机会白白浪费掉。如愤怒时不能遏制怒火,使周围的合作者望而却步;消沉时,放纵自己的萎靡。
6、培养领导才能
衡量一个领导人物成就的大小,要看他信念的深度、雄心的高度、理想的广度和他对下属关爱的程度。一个人的领导能力唯有靠同事和下属的支持和合作才能成功。领导要练习赞美的艺术,对人要公正,管理要合乎人性。每一件事情都要精益求精,每一件事都要研究如何改善,每一件事都要订出更高的标准。认真工作并不断改进的人才会成为一个卓越的领导。
7、建立自信心
一个人能否做成、做好一件事,首先看他是否有一个好的心态,以及是否能认真、持续地坚持下去。信心大、心态好,办法才多。所以,信心多一分,成功多十分;投入才能收获,付出才能杰出。永远不要被缺点所迷惑。当然,成功卓越的人只有少数,失败平庸的人却很多。成功的人在遭受挫折和危机的时候,仍然是顽强、乐观和充满自信,而失败者往往是退却,甚至是甘于退却。我们应该学会自信,成功的程度取决于信念的程度。
8、迷人的个性
人生的美好在于人情的美好,人情的美好,在于人性的美好,人性的美,在于迷人的、能够吸引人的个性。对他人的生活、工作表示深切的关心;与人交往中求同存异,避免冲突;学会倾听别人的观点;学会夸奖别人;有微笑的魅力;别吝啬自己的同情;要学会认错,学会宽容大度。
9、创新致胜
创造力是最珍贵的财富。如果你有这种能力,就能把握事业成功的最佳时机,从而创造伟大的奇迹。创新思维比常规思维更具明显的优势特点:A、具有独创性;B、机动灵活;C、有风险意识。创新思维无论取得什么样的成果,都具有重要的认识论和方法论的意义,因为即便他的不成功结果,也会向人们提供了以后少走弯路的教训。常规性思维虽然看起来“稳妥”,但它的根本缺陷是不能为人们提供新的启示。创新必胜,保守必败。
10、充满热忱
你有信仰就年轻,绝望就年老。失去了热忱,就损伤了灵魂。热忱是一种最重要的力量,有史以来没有任何一件伟大的事业不是因为热忱而成功的。热忱要有高尚的信念,如果热忱出于贪婪和自私,成功也会昙花一现。唯有热忱的态度,才是成功推销自己的重要因素。热忱的心态,是做任何事情都必需的条件。热忱是一种积极意识和状态,能够鼓励和激励他人采取行动,而且还具有感染和鼓舞他人的力量
1、保持积极的心态
人与人之间只有很小的差别,但这种很小的差别却往往造成巨大的差异,很小的差别就是所具备的心态是积极的还是消极的,巨大的差异就是成功与失败。也就是说,心态是命运的控制塔,心态决定我们人生的成败。我们生存的外部环境,也许不能选择,但另一个环境,即心理的、感情的、精神的内在环境,是可以由自己去改造的。成功的不一定都是企业家、领袖人物。成功,是指方方面面取得的成功,其标志在于人的心态,即积极、乐观地面对人生的各种挑战。一个人如果在一生中都不具有积极的心态就可能深陷泥淖,不能自觉,不能醒悟,不能自拔,当你发现身处困境时,机会已经失去。这种败局,不仅限于事业的失败,还包括人生中为人处事的失败,心理情绪的失败、婚恋家庭的失败、人的感受的失败等。总之,凡人生感受不如意,不幸福,都可视为你人生的失败,这些失败多半源于我们与生俱来的弱者的消极心态。如果我们能够调整心态,改变处事方法,就可以避免或扭转败局,甚至可以成为推动事业成功的伟人和把握幸福人生的智者。人成功不是指拥有什么(权力、财富),而是做了什么。如果能每天在一点一滴的努力中去实现自己的目标,就可以帮助和影响他人。成功等于每天进步一点点。积极的心态包括诚恳、忠诚、正直、乐观、勇敢、奋发、创造、机智、亲切、友善、积极、向善、向上、进取、努力、愉快、自信、自勉和有安全感等。
2、要有明确的目标
有了目标,内心的力量才会找到方向,漫无目标的努力或漂荡终归会迷路,而你心中的那座无价的金矿,也因得不到开采而与平凡的尘土无异。你过去和现在的情况并不重要,你将来想获得什么成就才是最重要的。有目标才会成功,如果你对未来没有理想,就做不出什么大事来。设定目标后订出中长期计划来,而且还要怀着迫切要求进步的愿望。成功是需要完全投入的,只有完全投入到你所从事的职业中去,才会有成功的一天;只有全身心地热爱你的生活,才会有成功的一天。
3、多走些路
做个主动的人。要勇于实践,你的成功也就是因为多走了些路,找到了别人未找到的另外一点东西。抓住机会,掌握机会,做个积极主动的人,并养成及时行动的好习惯。
4、正确的思考方法
成功等于正确的思想方法加信念加行动。要想成为思想方法正确的人,必须具备顽强坚定的性格,挖掘潜力,进行“我行”、“我是优秀的”、“还须再改进”的心理暗示。
5、高度的自制力
自制是一种最艰难的美德,有自制力才能抓住成功的机会。成功的最大敌人是自己,缺乏对自己情绪的控制,会把许多稍纵即逝的机会白白浪费掉。如愤怒时不能遏制怒火,使周围的合作者望而却步;消沉时,放纵自己的萎靡。
6、培养领导才能
衡量一个领导人物成就的大小,要看他信念的深度、雄心的高度、理想的广度和他对下属关爱的程度。一个人的领导能力唯有靠同事和下属的支持和合作才能成功。领导要练习赞美的艺术,对人要公正,管理要合乎人性。每一件事情都要精益求精,每一件事都要研究如何改善,每一件事都要订出更高的标准。认真工作并不断改进的人才会成为一个卓越的领导。
7、建立自信心
一个人能否做成、做好一件事,首先看他是否有一个好的心态,以及是否能认真、持续地坚持下去。信心大、心态好,办法才多。所以,信心多一分,成功多十分;投入才能收获,付出才能杰出。永远不要被缺点所迷惑。当然,成功卓越的人只有少数,失败平庸的人却很多。成功的人在遭受挫折和危机的时候,仍然是顽强、乐观和充满自信,而失败者往往是退却,甚至是甘于退却。我们应该学会自信,成功的程度取决于信念的程度。
8、迷人的个性
人生的美好在于人情的美好,人情的美好,在于人性的美好,人性的美,在于迷人的、能够吸引人的个性。对他人的生活、工作表示深切的关心;与人交往中求同存异,避免冲突;学会倾听别人的观点;学会夸奖别人;有微笑的魅力;别吝啬自己的同情;要学会认错,学会宽容大度。
9、创新致胜
创造力是最珍贵的财富。如果你有这种能力,就能把握事业成功的最佳时机,从而创造伟大的奇迹。创新思维比常规思维更具明显的优势特点:A、具有独创性;B、机动灵活;C、有风险意识。创新思维无论取得什么样的成果,都具有重要的认识论和方法论的意义,因为即便他的不成功结果,也会向人们提供了以后少走弯路的教训。常规性思维虽然看起来“稳妥”,但它的根本缺陷是不能为人们提供新的启示。创新必胜,保守必败。
10、充满热忱
你有信仰就年轻,绝望就年老。失去了热忱,就损伤了灵魂。热忱是一种最重要的力量,有史以来没有任何一件伟大的事业不是因为热忱而成功的。热忱要有高尚的信念,如果热忱出于贪婪和自私,成功也会昙花一现。唯有热忱的态度,才是成功推销自己的重要因素。热忱的心态,是做任何事情都必需的条件。热忱是一种积极意识和状态,能够鼓励和激励他人采取行动,而且还具有感染和鼓舞他人的力量
其实int中的4代表4个字节,1个字节是8个二进制串,于是实际上int型可以表示的最大整数就是0111 1111 1111 1111 1111 1111 1111 1111共32位,最前面的一位是符号位,计算机中通常用0代表整数,1代表负数,于是这个数转换成10进制就是2^0 + 2^1 + 2^2 + .........2^31 = 2^32 - 1 = 2147483647于是,我又想当然的认为最小的负整数就一定是1111 1111 1111 1111 1111 1111 1111 1111我们知道,负数在计算机中是以补码的形式存储的,而负数的补码= 其绝对值的原码取反 + 1,我们可以反向来推算嘛先减1.
取浮点数的后2位的简单示例代码。
[codes=C]
int temperatur; // "return" of temperature in degrees Celsius * 100
int temperatur2;
float temp; // temperature in degrees Celsius
float temp2; // temperature in degrees Celsius
temp=temperatur/100.0;
temp2=temperatur2/100.0;
sprintf( tempStr, "%.2f", temp );
sprintf( temp2Str, "%.2f", temp2 );
[/codes]
sprintf.c
[codes=C]
#include <stdio.h>
int main(){
float fstr=21.0056;
char pszstr[16]={0};
sprintf( pszstr, "%.2f", fstr );
printf("pszstr=%s\n",pszstr);
}
[/codes]
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
格式化字符串上。
printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要 的字符串。
格式化数字字符串
sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代
itoa。
如:
//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"
可以指定宽度,不足的左边补空格:
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
当然也可以左对齐:
sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"
也可以按照16 进制打印:
sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
这样,一个整数的16 进制字符串就很容易得到,但我们在打印16 进制内容时,通常想要一种左边补0 的等宽格式,那该怎么做呢?很简单,在表示宽度的数字前面加个0 就可以了。
sprintf(s, "%08X", 4567); //产生:"000011D7"
上面以”%d”进行的10 进制打印同样也可以使用这种左边补0 的方式。
这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它:
short si = -1;
sprintf(s, "%04X", si);
产生“FFFFFFFF”,怎么回事?因为spritnf 是个变参函数,除了前面两个参数之外,后面的参数都不是类型安全的,函数更没有办法仅仅通过一个“%X”就能得知当初函数调用前参数压栈时被压进来的到底 是个4 字节的整数还是个2 字节的短整数,所以采取了统一4 字节的处理方式,导致参数压栈时做了符号扩展,扩展成了32 位的整数-1,打印时4 个位置不够了,就把32 位整数-1 的8 位16 进制都打印出来了。
如果你想看si 的本来面目,那么就应该让编译器做0 扩展而不是符号扩展(扩展时二进制左边补0 而不是补符号位):
sprintf(s, "%04X", (unsigned short)si);
就可以了。或者:
unsigned short si = -1;
sprintf(s, "%04X", si);
sprintf 和printf 还可以按8 进制打印整数字符串,使用”%o”。注意8 进制和16 进制都不会打
印出负数,都是无符号的,实际上也就是变量的内部编码的直接的16 进制或8 进制表示。
控制浮点数打印格式
浮点数的打印和格式控制是sprintf 的又一大常用功能,浮点数使用格式符”%f”控制,默认保
留小数点后6 位数字,比如:
sprintf(s, "%f", 3.1415926); //产生"3.141593"
但有时我们希望自己控制打印的宽度和小数位数,这时就应该使用:”%m.nf”格式,其中m 表
示打印的宽度,n 表示小数点后的位数。比如:
sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
sprintf(s, "%-10.3f", 3.1415626); //产生:"3.142 "
sprintf(s, "%.3f", 3.1415626); //不指定总宽度,产生:"3.142"
注意一个问题,你猜
int i = 100;
sprintf(s, "%.2f", i);
会打出什么东东来?“100.00”?对吗?自己试试就知道了,同时也试试下面这个:
sprintf(s, "%.2f", (double)i);
第一个打出来的肯定不是正确结果,原因跟前面提到的一样,参数压栈时调用者并不知道跟i相对应的格式控制符是个”%f”。而函数执行时函数本身则并不知道 当年被压入栈里的是个整数,于是可怜的保存整数i 的那4 个字节就被不由分说地强行作为浮点数格式来解释了,整个乱套了。不过,如果有人有兴趣使用手工编码一个浮点数,那么倒可以使用这种方法来检验一下你手工编 排的结果是否正确。
字符/Ascii 码对照
我们知道,在C/C++语言中,char 也是一种普通的scalable 类型,除了字长之外,它与short,
int,long 这些类型没有本质区别,只不过被大家习惯用来表示字符和字符串而已。(或许当年该把
这个类型叫做“byte”,然后现在就可以根据实际情况,使用byte 或short 来把char 通过typedef 定义出来,这样更合适些)于是,使用”%d”或者”%x”打印一个字符,便能得出它的10 进制或16 进制的ASCII 码;反过来,使用”%c”打印一个整数,便可以看到它所对应的ASCII 字符。以下程序段把所有可见字符的ASCII 码对照表打印到屏幕上(这里采用printf,注意”#”与”%X”合用时自动为16 进制数增加”0X”前缀):
for(int i = 32; i < 127; i++) {
printf("[ %c ]: %3d 0x%#04X
", i, i, i);
}
连接字符串
sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连
接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时
在它们中间插入别的内容,总之非常灵活)。比如:
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "
strcat 只能连接字符串(一段以’’结尾的字符数组或叫做字符缓冲,null-terminated-string),但有时我们有两段字符缓冲区,他们并不是以 ’’结尾。比如许多从第三方库函数中返回的字符数组,从硬件或者网络传输中读进来的字符流,它们未必每一段字符序列后面都有个相应的’’来结尾。如果直接 连接,不管是sprintf 还是strcat 肯定会导致非法内存操作,而strncat 也至少要求第一个参数是个null-terminated-string,那该怎么办呢?我们自然会想起前面介绍打印整数和浮点数时可以指定宽度,字符串 也一样的。比如:
char a1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
char a2[] = {'H', 'I', 'J', 'K', 'L', 'M', 'N'};
如果:
sprintf(s, "%s%s", a1, a2); //Don't do that!
十有八九要出问题了。是否可以改成:
sprintf(s, "%7s%7s", a1, a2);
也没好到哪儿去,正确的应该是:
sprintf(s, "%.7s%.7s", a1, a2);//产生:"ABCDEFGHIJKLMN"
这可以类比打印浮点数的”%m.nf”,在”%m.ns”中,m 表示占用宽度(字符串长度不足时补空格,超出了则按照实际宽度打印),n 才表示从相应的字符串中最多取用的字符数。通常在打印字符串时m 没什么大用,还是点号后面的n 用的多。自然,也可以前后都只取部分字符:
sprintf(s, "%.6s%.5s", a1, a2);//产生:"ABCDEFHIJKL"
在许多时候,我们或许还希望这些格式控制符中用以指定长度信息的数字是动态的,而不是静态指定的,因为许多 时候,程序要到运行时才会清楚到底需要取字符数组中的几个字符,这种动态的宽度/精度设置功能在sprintf 的实现中也被考虑到了,sprintf 采用”*”来占用一个本来需要一个指定宽度或精度的常数数字的位置,同样,而实际的宽度或精度就可以和其它被打印的变量一样被提供出来,于是,上面的例子 可以变成:
sprintf(s, "%.*s%.*s", 7, a1, 7, a2);
或者:
sprintf(s, "%.*s%.*s", sizeof(a1), a1, sizeof(a2), a2);
实际上,前面介绍的打印字符、整数、浮点数等都可以动态指定那些常量值,比如:
sprintf(s, "%-*d", 4, 'A'); //产生"65 "
sprintf(s, "%#0*X", 8, 128); //产生"0X000080","#"产生0X
sprintf(s, "%*.*f", 10, 2, 3.1415926); //产生" 3.14"
打印地址信息
有时调试程序时,我们可能想查看某些变量或者成员的地址,由于地址或者指针也不过是个32 位的数,你完全可以使用打印无符号整数的”%u”把他们打印出来:
sprintf(s, "%u", &i);
不过通常人们还是喜欢使用16 进制而不是10 进制来显示一个地址:
sprintf(s, "%08X", &i);
然而,这些都是间接的方法,对于地址打印,sprintf 提供了专门的”%p”:
sprintf(s, "%p", &i);
我觉得它实际上就相当于:
sprintf(s, "%0*x", 2 * sizeof(void *), &i);
利用sprintf 的返回值
较少有人注意printf/sprintf 函数的返回值,但有时它却是有用的,spritnf 返回了本次函数调用
最终打印到字符缓冲区中的字符数目。也就是说每当一次sprinf 调用结束以后,你无须再调用一次
strlen 便已经知道了结果字符串的长度。如:
int len = sprintf(s, "%d", i);
对于正整数来说,len 便等于整数i 的10 进制位数。
下面的是个完整的例子,产生10 个[0, 100)之间的随机数,并将他们打印到一个字符数组s 中,
以逗号分隔开。
#include
#include
#include
int main() {
srand(time(0));
char s[64];
int offset = 0;
for(int i = 0; i < 10; i++) {
offset += sprintf(s + offset, "%d,", rand() % 100);
}
s[offset - 1] = '
';//将最后一个逗号换成换行符。
printf(s);
return 0;
}
设想当你从数据库中取出一条记录,然后希望把他们的各个字段按照某种规则连接成一个字
符串时,就可以使用这种方法,从理论上讲,他应该比不断的strcat 效率高,因为strcat 每次调用
都需要先找到最后的那个’’的位置,而在上面给出的例子中,我们每次都利用sprintf 返回值把这
个位置直接记下来了。
使用sprintf 的常见问题
sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访
问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通
常用眼睛再把出错的代码多看几眼就看出来了。
?? 缓冲区溢出
第一个参数的长度太短了,没的说,给个大点的地方吧。当然也可能是后面的参数的问
题,建议变参对应一定要细心,而打印字符串时,尽量使用”%.ns”的形式指定最大字符数。
?? 忘记了第一个参数
低级得不能再低级问题,用printf 用得太惯了。//偶就常犯。:。(
?? 变参对应出问题
通常是忘记了提供对应某个格式符的变参,导致以后的参数统统错位,检查检查吧。尤
其是对应”*”的那些参数,都提供了吗?不要把一个整数对应一个”%s”,编译器会觉得你
欺她太甚了(编译器是obj 和exe 的妈妈,应该是个女的,:P)。
strftime
sprnitf 还有个不错的表妹:strftime,专门用于格式化时间字符串的,用法跟她表哥很像,也
是一大堆格式控制符,只是毕竟小姑娘家心细,她还要调用者指定缓冲区的最大长度,可能是为
了在出现问题时可以推卸责任吧。这里举个例子:
time_t t = time(0);
//产生"YYYY-MM-DD hh:mm:ss"格式的字符串。
char s[32];
strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));
sprintf 在MFC 中也能找到他的知音:CString::Format,strftime 在MFC 中自然也有她的同道:
CTime::Format,这一对由于从面向对象哪里得到了赞助,用以写出的代码更觉优雅。
C语言标准库函数::strncmp()
函数原型
int strncmp(char *str1, char *str2, int maxlen);
函数功能 比较字符串s1和s2的前n个字符。 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0声明文件 <string.h>
用法示例 #include <stdio.h> #include <string.h> int main(void) { char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc"; int ptr; ptr = strncmp(buf2,buf1,3); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); else printf("buffer 2 is less than buffer 1\n"); ptr = strncmp(buf2,buf3,3); if (ptr > 0) printf("buffer 2 is greater than buffer 3\n"); else printf("buffer 2 is less than buffer 3\n"); return(0); }
[codes=C]
int temperatur; // "return" of temperature in degrees Celsius * 100
int temperatur2;
float temp; // temperature in degrees Celsius
float temp2; // temperature in degrees Celsius
temp=temperatur/100.0;
temp2=temperatur2/100.0;
sprintf( tempStr, "%.2f", temp );
sprintf( temp2Str, "%.2f", temp2 );
[/codes]
sprintf.c
[codes=C]
#include <stdio.h>
int main(){
float fstr=21.0056;
char pszstr[16]={0};
sprintf( pszstr, "%.2f", fstr );
printf("pszstr=%s\n",pszstr);
}
[/codes]
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
格式化字符串上。
printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要 的字符串。
格式化数字字符串
sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代
itoa。
如:
//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"
可以指定宽度,不足的左边补空格:
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
当然也可以左对齐:
sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"
也可以按照16 进制打印:
sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
这样,一个整数的16 进制字符串就很容易得到,但我们在打印16 进制内容时,通常想要一种左边补0 的等宽格式,那该怎么做呢?很简单,在表示宽度的数字前面加个0 就可以了。
sprintf(s, "%08X", 4567); //产生:"000011D7"
上面以”%d”进行的10 进制打印同样也可以使用这种左边补0 的方式。
这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它:
short si = -1;
sprintf(s, "%04X", si);
产生“FFFFFFFF”,怎么回事?因为spritnf 是个变参函数,除了前面两个参数之外,后面的参数都不是类型安全的,函数更没有办法仅仅通过一个“%X”就能得知当初函数调用前参数压栈时被压进来的到底 是个4 字节的整数还是个2 字节的短整数,所以采取了统一4 字节的处理方式,导致参数压栈时做了符号扩展,扩展成了32 位的整数-1,打印时4 个位置不够了,就把32 位整数-1 的8 位16 进制都打印出来了。
如果你想看si 的本来面目,那么就应该让编译器做0 扩展而不是符号扩展(扩展时二进制左边补0 而不是补符号位):
sprintf(s, "%04X", (unsigned short)si);
就可以了。或者:
unsigned short si = -1;
sprintf(s, "%04X", si);
sprintf 和printf 还可以按8 进制打印整数字符串,使用”%o”。注意8 进制和16 进制都不会打
印出负数,都是无符号的,实际上也就是变量的内部编码的直接的16 进制或8 进制表示。
控制浮点数打印格式
浮点数的打印和格式控制是sprintf 的又一大常用功能,浮点数使用格式符”%f”控制,默认保
留小数点后6 位数字,比如:
sprintf(s, "%f", 3.1415926); //产生"3.141593"
但有时我们希望自己控制打印的宽度和小数位数,这时就应该使用:”%m.nf”格式,其中m 表
示打印的宽度,n 表示小数点后的位数。比如:
sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
sprintf(s, "%-10.3f", 3.1415626); //产生:"3.142 "
sprintf(s, "%.3f", 3.1415626); //不指定总宽度,产生:"3.142"
注意一个问题,你猜
int i = 100;
sprintf(s, "%.2f", i);
会打出什么东东来?“100.00”?对吗?自己试试就知道了,同时也试试下面这个:
sprintf(s, "%.2f", (double)i);
第一个打出来的肯定不是正确结果,原因跟前面提到的一样,参数压栈时调用者并不知道跟i相对应的格式控制符是个”%f”。而函数执行时函数本身则并不知道 当年被压入栈里的是个整数,于是可怜的保存整数i 的那4 个字节就被不由分说地强行作为浮点数格式来解释了,整个乱套了。不过,如果有人有兴趣使用手工编码一个浮点数,那么倒可以使用这种方法来检验一下你手工编 排的结果是否正确。
字符/Ascii 码对照
我们知道,在C/C++语言中,char 也是一种普通的scalable 类型,除了字长之外,它与short,
int,long 这些类型没有本质区别,只不过被大家习惯用来表示字符和字符串而已。(或许当年该把
这个类型叫做“byte”,然后现在就可以根据实际情况,使用byte 或short 来把char 通过typedef 定义出来,这样更合适些)于是,使用”%d”或者”%x”打印一个字符,便能得出它的10 进制或16 进制的ASCII 码;反过来,使用”%c”打印一个整数,便可以看到它所对应的ASCII 字符。以下程序段把所有可见字符的ASCII 码对照表打印到屏幕上(这里采用printf,注意”#”与”%X”合用时自动为16 进制数增加”0X”前缀):
for(int i = 32; i < 127; i++) {
printf("[ %c ]: %3d 0x%#04X
", i, i, i);
}
连接字符串
sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连
接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时
在它们中间插入别的内容,总之非常灵活)。比如:
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "
strcat 只能连接字符串(一段以’’结尾的字符数组或叫做字符缓冲,null-terminated-string),但有时我们有两段字符缓冲区,他们并不是以 ’’结尾。比如许多从第三方库函数中返回的字符数组,从硬件或者网络传输中读进来的字符流,它们未必每一段字符序列后面都有个相应的’’来结尾。如果直接 连接,不管是sprintf 还是strcat 肯定会导致非法内存操作,而strncat 也至少要求第一个参数是个null-terminated-string,那该怎么办呢?我们自然会想起前面介绍打印整数和浮点数时可以指定宽度,字符串 也一样的。比如:
char a1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
char a2[] = {'H', 'I', 'J', 'K', 'L', 'M', 'N'};
如果:
sprintf(s, "%s%s", a1, a2); //Don't do that!
十有八九要出问题了。是否可以改成:
sprintf(s, "%7s%7s", a1, a2);
也没好到哪儿去,正确的应该是:
sprintf(s, "%.7s%.7s", a1, a2);//产生:"ABCDEFGHIJKLMN"
这可以类比打印浮点数的”%m.nf”,在”%m.ns”中,m 表示占用宽度(字符串长度不足时补空格,超出了则按照实际宽度打印),n 才表示从相应的字符串中最多取用的字符数。通常在打印字符串时m 没什么大用,还是点号后面的n 用的多。自然,也可以前后都只取部分字符:
sprintf(s, "%.6s%.5s", a1, a2);//产生:"ABCDEFHIJKL"
在许多时候,我们或许还希望这些格式控制符中用以指定长度信息的数字是动态的,而不是静态指定的,因为许多 时候,程序要到运行时才会清楚到底需要取字符数组中的几个字符,这种动态的宽度/精度设置功能在sprintf 的实现中也被考虑到了,sprintf 采用”*”来占用一个本来需要一个指定宽度或精度的常数数字的位置,同样,而实际的宽度或精度就可以和其它被打印的变量一样被提供出来,于是,上面的例子 可以变成:
sprintf(s, "%.*s%.*s", 7, a1, 7, a2);
或者:
sprintf(s, "%.*s%.*s", sizeof(a1), a1, sizeof(a2), a2);
实际上,前面介绍的打印字符、整数、浮点数等都可以动态指定那些常量值,比如:
sprintf(s, "%-*d", 4, 'A'); //产生"65 "
sprintf(s, "%#0*X", 8, 128); //产生"0X000080","#"产生0X
sprintf(s, "%*.*f", 10, 2, 3.1415926); //产生" 3.14"
打印地址信息
有时调试程序时,我们可能想查看某些变量或者成员的地址,由于地址或者指针也不过是个32 位的数,你完全可以使用打印无符号整数的”%u”把他们打印出来:
sprintf(s, "%u", &i);
不过通常人们还是喜欢使用16 进制而不是10 进制来显示一个地址:
sprintf(s, "%08X", &i);
然而,这些都是间接的方法,对于地址打印,sprintf 提供了专门的”%p”:
sprintf(s, "%p", &i);
我觉得它实际上就相当于:
sprintf(s, "%0*x", 2 * sizeof(void *), &i);
利用sprintf 的返回值
较少有人注意printf/sprintf 函数的返回值,但有时它却是有用的,spritnf 返回了本次函数调用
最终打印到字符缓冲区中的字符数目。也就是说每当一次sprinf 调用结束以后,你无须再调用一次
strlen 便已经知道了结果字符串的长度。如:
int len = sprintf(s, "%d", i);
对于正整数来说,len 便等于整数i 的10 进制位数。
下面的是个完整的例子,产生10 个[0, 100)之间的随机数,并将他们打印到一个字符数组s 中,
以逗号分隔开。
#include
#include
#include
int main() {
srand(time(0));
char s[64];
int offset = 0;
for(int i = 0; i < 10; i++) {
offset += sprintf(s + offset, "%d,", rand() % 100);
}
s[offset - 1] = '
';//将最后一个逗号换成换行符。
printf(s);
return 0;
}
设想当你从数据库中取出一条记录,然后希望把他们的各个字段按照某种规则连接成一个字
符串时,就可以使用这种方法,从理论上讲,他应该比不断的strcat 效率高,因为strcat 每次调用
都需要先找到最后的那个’’的位置,而在上面给出的例子中,我们每次都利用sprintf 返回值把这
个位置直接记下来了。
使用sprintf 的常见问题
sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访
问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通
常用眼睛再把出错的代码多看几眼就看出来了。
?? 缓冲区溢出
第一个参数的长度太短了,没的说,给个大点的地方吧。当然也可能是后面的参数的问
题,建议变参对应一定要细心,而打印字符串时,尽量使用”%.ns”的形式指定最大字符数。
?? 忘记了第一个参数
低级得不能再低级问题,用printf 用得太惯了。//偶就常犯。:。(
?? 变参对应出问题
通常是忘记了提供对应某个格式符的变参,导致以后的参数统统错位,检查检查吧。尤
其是对应”*”的那些参数,都提供了吗?不要把一个整数对应一个”%s”,编译器会觉得你
欺她太甚了(编译器是obj 和exe 的妈妈,应该是个女的,:P)。
strftime
sprnitf 还有个不错的表妹:strftime,专门用于格式化时间字符串的,用法跟她表哥很像,也
是一大堆格式控制符,只是毕竟小姑娘家心细,她还要调用者指定缓冲区的最大长度,可能是为
了在出现问题时可以推卸责任吧。这里举个例子:
time_t t = time(0);
//产生"YYYY-MM-DD hh:mm:ss"格式的字符串。
char s[32];
strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));
sprintf 在MFC 中也能找到他的知音:CString::Format,strftime 在MFC 中自然也有她的同道:
CTime::Format,这一对由于从面向对象哪里得到了赞助,用以写出的代码更觉优雅。
C语言标准库函数::strncmp()
函数原型
int strncmp(char *str1, char *str2, int maxlen);
函数功能 比较字符串s1和s2的前n个字符。 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0声明文件 <string.h>
用法示例 #include <stdio.h> #include <string.h> int main(void) { char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc"; int ptr; ptr = strncmp(buf2,buf1,3); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); else printf("buffer 2 is less than buffer 1\n"); ptr = strncmp(buf2,buf3,3); if (ptr > 0) printf("buffer 2 is greater than buffer 3\n"); else printf("buffer 2 is less than buffer 3\n"); return(0); }
京城独酌,草木盎然,对影三人,月圆中天,嫦娥轻舞,吾影零乱,举杯遥祝,诸位平安,醒同交欢,醉各分散,六年同职,去留徘徊。金沙滩之大煤场,柳村二场之港口,路距七百,心距漫漫无限,车距七十二时辰,魔鬼般的旅程,炼狱般的煎熬,祈布达拉宫之神灵,借珠穆朗玛之灵气,饮青藏高原之圣水,采贡嘎雪山仙景之灵光,执问四方诸神,可否赐我洗礼后的重生?激情依旧?一切重来!
身累心痛,碌碌无为,今生有悔!
不在沉默中死亡,就在改变中重生!
身累心痛,碌碌无为,今生有悔!
不在沉默中死亡,就在改变中重生!
1. 能做到或不能做到,其实只在一念之间。相信你自己,永远不要让你的猜疑阻碍了你追求梦想的决心。
2. 你认为你行,你就行
你认为你行,你就行!
敢想,敢做!我很勇敢!
每天早上第一件事就是反复对自己说这句话!
相信自己!不要等待别人为你做你应该做的事。不断鼓励你自己,--你认为你行,你就行!
唤醒你潜藏的力量
1. 潜藏在内心的力量令你无所不能
如果你相信上帝是一个慈爱的父亲,上帝愿将他最好的东西给予他的孩子。只要你真的相信自己拥有上帝赐予的神奇的力量,你将会无所不能。
一个人能否成功的决定因素,不在于他拥有多少有利的条件,而在于他对自己如何评价和期待。他怎样评价自己,决定了别人怎样评价他。你如果不相信上帝已经给予你一切,就等于对宇宙的智慧和伟大的能力关闭了大门。
每个人都拥有许多天赋、潜在的能力和成功的力量。这是你最大的资产,你必须使自己成为一名积极的思想者,把个性的力量转化为有效的行动,赋予生命新的意义。
这个世界上最伟大的力量就藏在你的心中!现在你已经知道了!利用这个万能的工具,你可以做成任何事情。毫无疑问,你的每一个梦想都将实现。你期望的都会如你所愿,任你取回:爱情、成功、财富、健康、幸福。“我早已拥有它们了”--只要你这样认为,并且发自内心地相信,你就可以获得自己期望拥有的一切。你唯一需要做的,就是将你真正的个性显露出来。一个令人惊奇的新生活正在等待你的拥抱,你会从此获得新生。因为生活就是一种态度,也可以说是你自己想法的产品,所以不要限制你的想法。思考的力量可以造就一切。你认为你行,你就行!
2. 要相信你自己!对自己的能力拥有绝对的信心!如果你对自己的力量,拥有健全的自信心,成功将是你的囊中之物。如果你有难以克服的自卑感,不相信自己的能力,就会阻碍你获取成功;只有坚定的自信会带你走向自我实现的道路。--态度决定一切!相信你自己,释放出你不可思议的内在力量。
没有什么事可以决定你的一生。能够成功当然好,但如果没有成功,明天仍然是光明的一天。
凭借神所赐的力量,我能够应对一切!
如果你们有信心,没有任何事情是你们不能做的。
只要上帝在我们这一边,谁又能与我们为敌?
我能改变,能变成另外一个人。
建立信心的10条规则:
1. 构思你自己成功的心像,牢牢印在脑海中。不屈不挠地固守这幅心像,不容它褪色。无论情况显得多糟,请随时想像成功的画面。
2. 消极的想法浮上心头,请马上采用一个积极的想法来与之对抗。
3. 有意忽视每一个所谓的障碍,把阻力缩小。研究困难,做有效的处理,消除它,千万不要因为恐惧而把问题看得太严重。
4. 不要过度敬畏别人,培养一种“自以为是”的心态。没有人能比你更好地扮演你的角色。请记住:大多数人虽然外表看来很自信,其实往往跟你一样害怕,一样不信任自己。
5. 每天念10遍下面的语句:“如果上帝帮助我们,谁能阻挡我们呢?”
6. 找一个专家帮你找出自卑的主因。由童年研究起,认清自己对你大有帮助。
7. 如果遇到困难遭到挫败,要拿出一张纸列出所有对自己有利的因素。这些因素不但可以让你变得积极,而且更能使自己冷静、客观地面对问题。
8. 确实评估自己的能力,然后再将它提高10%。别太自负,但要有足够的自尊。
9. 想像你的能力无限之大。时刻不要忘记接受积极的思想,不给空虚、沮丧、疲倦留有侵袭的时间。
10.提醒自己别和你的恐惧商量如何去做,而是采取主动积极的态度去分析问题、解决问题
2. 你认为你行,你就行
你认为你行,你就行!
敢想,敢做!我很勇敢!
每天早上第一件事就是反复对自己说这句话!
相信自己!不要等待别人为你做你应该做的事。不断鼓励你自己,--你认为你行,你就行!
唤醒你潜藏的力量
1. 潜藏在内心的力量令你无所不能
如果你相信上帝是一个慈爱的父亲,上帝愿将他最好的东西给予他的孩子。只要你真的相信自己拥有上帝赐予的神奇的力量,你将会无所不能。
一个人能否成功的决定因素,不在于他拥有多少有利的条件,而在于他对自己如何评价和期待。他怎样评价自己,决定了别人怎样评价他。你如果不相信上帝已经给予你一切,就等于对宇宙的智慧和伟大的能力关闭了大门。
每个人都拥有许多天赋、潜在的能力和成功的力量。这是你最大的资产,你必须使自己成为一名积极的思想者,把个性的力量转化为有效的行动,赋予生命新的意义。
这个世界上最伟大的力量就藏在你的心中!现在你已经知道了!利用这个万能的工具,你可以做成任何事情。毫无疑问,你的每一个梦想都将实现。你期望的都会如你所愿,任你取回:爱情、成功、财富、健康、幸福。“我早已拥有它们了”--只要你这样认为,并且发自内心地相信,你就可以获得自己期望拥有的一切。你唯一需要做的,就是将你真正的个性显露出来。一个令人惊奇的新生活正在等待你的拥抱,你会从此获得新生。因为生活就是一种态度,也可以说是你自己想法的产品,所以不要限制你的想法。思考的力量可以造就一切。你认为你行,你就行!
2. 要相信你自己!对自己的能力拥有绝对的信心!如果你对自己的力量,拥有健全的自信心,成功将是你的囊中之物。如果你有难以克服的自卑感,不相信自己的能力,就会阻碍你获取成功;只有坚定的自信会带你走向自我实现的道路。--态度决定一切!相信你自己,释放出你不可思议的内在力量。
没有什么事可以决定你的一生。能够成功当然好,但如果没有成功,明天仍然是光明的一天。
凭借神所赐的力量,我能够应对一切!
如果你们有信心,没有任何事情是你们不能做的。
只要上帝在我们这一边,谁又能与我们为敌?
我能改变,能变成另外一个人。
建立信心的10条规则:
1. 构思你自己成功的心像,牢牢印在脑海中。不屈不挠地固守这幅心像,不容它褪色。无论情况显得多糟,请随时想像成功的画面。
2. 消极的想法浮上心头,请马上采用一个积极的想法来与之对抗。
3. 有意忽视每一个所谓的障碍,把阻力缩小。研究困难,做有效的处理,消除它,千万不要因为恐惧而把问题看得太严重。
4. 不要过度敬畏别人,培养一种“自以为是”的心态。没有人能比你更好地扮演你的角色。请记住:大多数人虽然外表看来很自信,其实往往跟你一样害怕,一样不信任自己。
5. 每天念10遍下面的语句:“如果上帝帮助我们,谁能阻挡我们呢?”
6. 找一个专家帮你找出自卑的主因。由童年研究起,认清自己对你大有帮助。
7. 如果遇到困难遭到挫败,要拿出一张纸列出所有对自己有利的因素。这些因素不但可以让你变得积极,而且更能使自己冷静、客观地面对问题。
8. 确实评估自己的能力,然后再将它提高10%。别太自负,但要有足够的自尊。
9. 想像你的能力无限之大。时刻不要忘记接受积极的思想,不给空虚、沮丧、疲倦留有侵袭的时间。
10.提醒自己别和你的恐惧商量如何去做,而是采取主动积极的态度去分析问题、解决问题
grep hp_mailchecksize /usr/home/xiangdong2/test_entadmin_src/src/entplatform/ -r
以下是grep查找test文本中行首包含某个单词的情况:
grep -i -E '^ANT' test
对某个目录的grep匹配命令:
grep -rni -E '^ANT' ./
去掉前非0开头的号码:
grep "^[1-9].*" a.txt
以下是grep查找test文本中行首包含某个单词的情况:
grep -i -E '^ANT' test
对某个目录的grep匹配命令:
grep -rni -E '^ANT' ./
去掉前非0开头的号码:
grep "^[1-9].*" a.txt
我是一个粗人,永远不懂女孩的感受;
我是一个粗人,只知道默默忍受;
我是一个粗人,有些事,永远不明白,永远不明白情为何物;
对酒当歌又有何用,我只是一个粗人。
我是一个粗人,不知道逗女孩开心;
我是一个粗人,只知道对女孩要用真心,真心何用;
我是一个粗人,女孩喜欢甜言蜜语,哪怕是谎言,我不会;
我是一个粗人,女孩喜欢风花雪月,就算是故事,我不懂;
我是一个粗人,永远不会说慌,不会花心,只知道痴心如一;
女孩不爱我,我只是一个粗人;
粗人要坚持原则,女孩不理解;
粗人要保持个性,女孩不满意;
粗人要爱女孩,女孩不接受;
女孩听了甜言蜜语,不理会粗人;
女孩听了一派谎言,反对粗人;
粗人真的很伤心,真的很伤心;
粗人苯嘴拙舌,不会替自己辩解;
粗人老老实实,不会替自己开脱;
粗人只知道,一辈子对女孩好;
粗人只知道,永远真心实意,对女孩好;
粗人想哭,可是粗人是男人,哭不出来;
粗人想骂,可是粗人老实,骂不出口;
粗人喝醉了,为了一个小天使;
粗人不明白,永远不明白,因为我是一个粗人;
周末了,粗人守在计算机前,心里难受;
女孩陪别人出去了,粗人寂寞;
粗人只有用工作来安慰自己;
粗人只有用酒精来麻醉自己;
粗人真的很想哭;
粗人心如刀铰,粗人不怪女孩;
因为我只是一个粗人,一个粗人;
粗人也知道哄女孩开心;
粗人也明白需要浪漫;
可是粗人太笨,粗人只知道关心女孩;
为了女孩,粗人肯得罪上司;
为了女孩,粗人肯牺牲时间;
为了女孩,粗人肯替她做一切的一切;
女孩不爱粗人;
女孩不爱粗人;
粗人不后悔,因为粗人爱女孩,粗人真心真意爱女孩;
粗人还是想哭,因为女孩不爱粗人;
粗人今天晚上抽了很多烟;
粗人今天晚上喝了很多酒;
粗人的眼泪流出来了;
粗人永远不明白;
粗人不笨,不是不会骗人;
粗人不傻,不是不会花心;
粗人不丑,不是没有女孩爱;
可是粗人只爱那一个,那一个不爱粗人;
粗人很想陪女孩去逛街,女孩没空;
粗人很想陪女孩去吃好吃的,女孩有事;
粗人很想陪女孩看日出日落,
粗人很想陪女孩去看海;
女孩和别的SmartBoy出去了;
粗人很傻,粗人很天真;
粗人哭了,真的哭了;
粗人似乎不明白,粗人也似乎很明白;
粗人明白自己只是粗人;
粗人真的很想将女孩揽入怀中,抚弄女孩的长发;
粗人真的很想拉拉女孩的手;
粗人真的很想吻女孩的额头;
粗人真的很想娶女孩;
粗人真的哭了;
只怪我是一个粗人;
一个粗人而已,粗人不怪女孩;
粗人只怪自己是一个粗人;
粗人要走了;
女孩你知道吗?
当女孩受人挑拨的时候;
当女孩开始反对粗人的时候;
粗人的心凉了,女孩你知道吗?
粗人现在真的哭了,女孩你知道吗?
女孩,当你因为任性跟自己过不去的时候,
粗人真的心疼了,女孩你知道吗?
粗人真的要走了,很凄凉的走了;
粗人爱你,女孩你知道吗?
粗人愿用一生去爱你,女孩你知道吗?
也许女孩太小,也许女孩真的是个幼稚的小女孩;
粗人真的很伤心,粗人真的很心疼女孩;
粗人为什么,为什么;
粗人的烟烧完了,烫到了手指,烫出了水泡,粗人没感觉;
有谁在乎粗人,有谁明白粗人;
谁让我是一个粗人;
女孩的心思粗人永远不懂,永远不懂;
粗人心碎了;
女孩,有一天你会发现,最适合你的人就是对你最好,最爱你,真心真意爱你的,
那一个粗人;
粗人常用这句话来安慰自己;
现在粗人也只能用这句话来安慰自己;
粗人真的想走了,一个人走了;
粗人的心伤透了。
粗人只怪自己是个粗人;
粗人会记得那双闪亮的眼睛;
粗人会记得那美丽的容颜;
粗人会记得女孩的温柔;
粗人会记得女孩的俏皮;
粗人会记得女孩的倔强;
粗人舍不得,多想女孩对粗人说ILU;
粗人心疼,心疼女孩做的那些伤害自己的傻事;
粗人想对女孩说,一份真挚的感情来直不易;
粗人想走了,粗人想对女孩说留住我好吗?
----
有的人腿断了,可他还站着;
有的人腿没断,可是他装逼,他趴着
我是一个粗人,只知道默默忍受;
我是一个粗人,有些事,永远不明白,永远不明白情为何物;
对酒当歌又有何用,我只是一个粗人。
我是一个粗人,不知道逗女孩开心;
我是一个粗人,只知道对女孩要用真心,真心何用;
我是一个粗人,女孩喜欢甜言蜜语,哪怕是谎言,我不会;
我是一个粗人,女孩喜欢风花雪月,就算是故事,我不懂;
我是一个粗人,永远不会说慌,不会花心,只知道痴心如一;
女孩不爱我,我只是一个粗人;
粗人要坚持原则,女孩不理解;
粗人要保持个性,女孩不满意;
粗人要爱女孩,女孩不接受;
女孩听了甜言蜜语,不理会粗人;
女孩听了一派谎言,反对粗人;
粗人真的很伤心,真的很伤心;
粗人苯嘴拙舌,不会替自己辩解;
粗人老老实实,不会替自己开脱;
粗人只知道,一辈子对女孩好;
粗人只知道,永远真心实意,对女孩好;
粗人想哭,可是粗人是男人,哭不出来;
粗人想骂,可是粗人老实,骂不出口;
粗人喝醉了,为了一个小天使;
粗人不明白,永远不明白,因为我是一个粗人;
周末了,粗人守在计算机前,心里难受;
女孩陪别人出去了,粗人寂寞;
粗人只有用工作来安慰自己;
粗人只有用酒精来麻醉自己;
粗人真的很想哭;
粗人心如刀铰,粗人不怪女孩;
因为我只是一个粗人,一个粗人;
粗人也知道哄女孩开心;
粗人也明白需要浪漫;
可是粗人太笨,粗人只知道关心女孩;
为了女孩,粗人肯得罪上司;
为了女孩,粗人肯牺牲时间;
为了女孩,粗人肯替她做一切的一切;
女孩不爱粗人;
女孩不爱粗人;
粗人不后悔,因为粗人爱女孩,粗人真心真意爱女孩;
粗人还是想哭,因为女孩不爱粗人;
粗人今天晚上抽了很多烟;
粗人今天晚上喝了很多酒;
粗人的眼泪流出来了;
粗人永远不明白;
粗人不笨,不是不会骗人;
粗人不傻,不是不会花心;
粗人不丑,不是没有女孩爱;
可是粗人只爱那一个,那一个不爱粗人;
粗人很想陪女孩去逛街,女孩没空;
粗人很想陪女孩去吃好吃的,女孩有事;
粗人很想陪女孩看日出日落,
粗人很想陪女孩去看海;
女孩和别的SmartBoy出去了;
粗人很傻,粗人很天真;
粗人哭了,真的哭了;
粗人似乎不明白,粗人也似乎很明白;
粗人明白自己只是粗人;
粗人真的很想将女孩揽入怀中,抚弄女孩的长发;
粗人真的很想拉拉女孩的手;
粗人真的很想吻女孩的额头;
粗人真的很想娶女孩;
粗人真的哭了;
只怪我是一个粗人;
一个粗人而已,粗人不怪女孩;
粗人只怪自己是一个粗人;
粗人要走了;
女孩你知道吗?
当女孩受人挑拨的时候;
当女孩开始反对粗人的时候;
粗人的心凉了,女孩你知道吗?
粗人现在真的哭了,女孩你知道吗?
女孩,当你因为任性跟自己过不去的时候,
粗人真的心疼了,女孩你知道吗?
粗人真的要走了,很凄凉的走了;
粗人爱你,女孩你知道吗?
粗人愿用一生去爱你,女孩你知道吗?
也许女孩太小,也许女孩真的是个幼稚的小女孩;
粗人真的很伤心,粗人真的很心疼女孩;
粗人为什么,为什么;
粗人的烟烧完了,烫到了手指,烫出了水泡,粗人没感觉;
有谁在乎粗人,有谁明白粗人;
谁让我是一个粗人;
女孩的心思粗人永远不懂,永远不懂;
粗人心碎了;
女孩,有一天你会发现,最适合你的人就是对你最好,最爱你,真心真意爱你的,
那一个粗人;
粗人常用这句话来安慰自己;
现在粗人也只能用这句话来安慰自己;
粗人真的想走了,一个人走了;
粗人的心伤透了。
粗人只怪自己是个粗人;
粗人会记得那双闪亮的眼睛;
粗人会记得那美丽的容颜;
粗人会记得女孩的温柔;
粗人会记得女孩的俏皮;
粗人会记得女孩的倔强;
粗人舍不得,多想女孩对粗人说ILU;
粗人心疼,心疼女孩做的那些伤害自己的傻事;
粗人想对女孩说,一份真挚的感情来直不易;
粗人想走了,粗人想对女孩说留住我好吗?
----
有的人腿断了,可他还站着;
有的人腿没断,可是他装逼,他趴着
长恨歌
----白居易
汉皇重色思倾国, 御宇多年求不得。
杨家有女初长成, 养在深闺人未识。
天生丽质难自弃, 一朝选在君王侧。
回眸一笑百媚生, 六宫粉黛无颜色。
春寒赐浴华清池, 温泉水滑洗凝脂。
侍儿扶起娇无力, 始是新承恩泽时。
云鬓花颜金步摇, 芙蓉帐暖度春宵。
春宵苦短日高起, 从此君王不早朝。
承欢侍宴无闲暇, 春从春游夜专夜。
后宫佳丽三千人, 三千宠爱在一身。
金屋妆成娇侍夜, 玉楼宴罢醉和春。
姊妹弟兄皆列土, 可怜光彩生门户。
遂令天下父母心, 不重生男重生女。
骊宫高处入青云, 仙乐风飘处处闻。
缓歌谩舞凝丝竹, 尽日君王看不足。
渔阳鼙鼓动地来, 惊破霓裳羽衣曲。
九重城阙烟尘生, 千乘万骑西南行。
翠华摇摇行复止, 西出都门百余里。
六军不发无奈何, 宛转蛾眉马前死。
花钿委地无人收, 翠翘金雀玉搔头。
君王掩面救不得, 回看血泪相和流。
黄埃散漫风萧索, 云栈萦纡登剑阁。
峨嵋山下少人行, 旌旗无光日色薄。
蜀江水碧蜀山青, 圣主朝朝暮暮情。
行宫见月伤心色, 夜雨闻铃肠断声。
天旋地转回龙驭, 到此踌躇不能去。
马嵬坡下泥土中, 不见玉颜空死处。
君臣相顾尽沾衣, 东望都门信马归。
归来池苑皆依旧, 太液芙蓉未央柳。
芙蓉如面柳如眉, 对此如何不泪垂。
春风桃李花开日, 秋雨梧桐叶落时。
西宫南内多秋草, 落叶满阶红不扫。
梨园弟子白发新, 椒房阿监青娥老。
夕殿萤飞思悄然, 孤灯挑尽未成眠。
迟迟钟鼓初长夜, 耿耿星河欲曙天。
鸳鸯瓦冷霜华重, 翡翠衾寒谁与共。
悠悠生死别经年, 魂魄不曾来入梦。
临邛道士鸿都客, 能以精诚致魂魄。
为感君王辗转思, 遂教方士殷勤觅。
排空驭气奔如电, 升天入地求之遍。
上穷碧落下黄泉, 两处茫茫皆不见。
忽闻海上有仙山, 山在虚无缥渺间。
楼阁玲珑五云起, 其中绰约多仙子。
中有一人字太真, 雪肤花貌参差是。
金阙西厢叩玉扃, 转教小玉报双成。
闻道汉家天子使, 九华帐里梦魂惊。
揽衣推枕起徘徊, 珠箔银屏迤逦开。
云鬓半偏新睡觉, 花冠不整下堂来。
风吹仙袂飘飘举, 犹似霓裳羽衣舞。
玉容寂寞泪阑干, 梨花一枝春带雨。
含情凝睇谢君王, 一别音容两渺茫。
昭阳殿里恩爱绝, 蓬莱宫中日月长。
回头下望人寰处, 不见长安见尘雾。
惟将旧物表深情, 钿合金钗寄将去。
钗留一股合一扇, 钗擘黄金合分钿。
但教心似金钿坚, 天上人间会相见。
临别殷勤重寄词, 词中有誓两心知。
七月七日长生殿, 夜半无人私语时。
在天愿作比翼鸟, 在地愿为连理枝。
天长地久有时尽, 此恨绵绵无绝期
----白居易
汉皇重色思倾国, 御宇多年求不得。
杨家有女初长成, 养在深闺人未识。
天生丽质难自弃, 一朝选在君王侧。
回眸一笑百媚生, 六宫粉黛无颜色。
春寒赐浴华清池, 温泉水滑洗凝脂。
侍儿扶起娇无力, 始是新承恩泽时。
云鬓花颜金步摇, 芙蓉帐暖度春宵。
春宵苦短日高起, 从此君王不早朝。
承欢侍宴无闲暇, 春从春游夜专夜。
后宫佳丽三千人, 三千宠爱在一身。
金屋妆成娇侍夜, 玉楼宴罢醉和春。
姊妹弟兄皆列土, 可怜光彩生门户。
遂令天下父母心, 不重生男重生女。
骊宫高处入青云, 仙乐风飘处处闻。
缓歌谩舞凝丝竹, 尽日君王看不足。
渔阳鼙鼓动地来, 惊破霓裳羽衣曲。
九重城阙烟尘生, 千乘万骑西南行。
翠华摇摇行复止, 西出都门百余里。
六军不发无奈何, 宛转蛾眉马前死。
花钿委地无人收, 翠翘金雀玉搔头。
君王掩面救不得, 回看血泪相和流。
黄埃散漫风萧索, 云栈萦纡登剑阁。
峨嵋山下少人行, 旌旗无光日色薄。
蜀江水碧蜀山青, 圣主朝朝暮暮情。
行宫见月伤心色, 夜雨闻铃肠断声。
天旋地转回龙驭, 到此踌躇不能去。
马嵬坡下泥土中, 不见玉颜空死处。
君臣相顾尽沾衣, 东望都门信马归。
归来池苑皆依旧, 太液芙蓉未央柳。
芙蓉如面柳如眉, 对此如何不泪垂。
春风桃李花开日, 秋雨梧桐叶落时。
西宫南内多秋草, 落叶满阶红不扫。
梨园弟子白发新, 椒房阿监青娥老。
夕殿萤飞思悄然, 孤灯挑尽未成眠。
迟迟钟鼓初长夜, 耿耿星河欲曙天。
鸳鸯瓦冷霜华重, 翡翠衾寒谁与共。
悠悠生死别经年, 魂魄不曾来入梦。
临邛道士鸿都客, 能以精诚致魂魄。
为感君王辗转思, 遂教方士殷勤觅。
排空驭气奔如电, 升天入地求之遍。
上穷碧落下黄泉, 两处茫茫皆不见。
忽闻海上有仙山, 山在虚无缥渺间。
楼阁玲珑五云起, 其中绰约多仙子。
中有一人字太真, 雪肤花貌参差是。
金阙西厢叩玉扃, 转教小玉报双成。
闻道汉家天子使, 九华帐里梦魂惊。
揽衣推枕起徘徊, 珠箔银屏迤逦开。
云鬓半偏新睡觉, 花冠不整下堂来。
风吹仙袂飘飘举, 犹似霓裳羽衣舞。
玉容寂寞泪阑干, 梨花一枝春带雨。
含情凝睇谢君王, 一别音容两渺茫。
昭阳殿里恩爱绝, 蓬莱宫中日月长。
回头下望人寰处, 不见长安见尘雾。
惟将旧物表深情, 钿合金钗寄将去。
钗留一股合一扇, 钗擘黄金合分钿。
但教心似金钿坚, 天上人间会相见。
临别殷勤重寄词, 词中有誓两心知。
七月七日长生殿, 夜半无人私语时。
在天愿作比翼鸟, 在地愿为连理枝。
天长地久有时尽, 此恨绵绵无绝期
写了一篇《我靠故我在》,于是,一个朋友留言表达了不同看法。我很高兴看到他的留言,我说这话的时候,难得的开心的笑了。如今,作为一个作奸犯科者,我很少看到认真和我讨论“靠”的人了。你是其中的一个。其实,你的一句话让我很动容,“不要笑我不明白,现实的现实以后,我们还能拥有些什么?”
是啊,我们还拥有什么?我想回答这个问题。
首先,我想和你探讨一下什么叫堕落。在我看来,堕落其实就是一种背叛。然而,这种背叛不是针对别人的,而是针对自己的。你背叛了你自己的原则,你背叛了自己的感觉,你背叛了你的灵魂,那么,我说你就堕落了。举例说,你是个向往灵魂自由的人,但是,你却因为其他的原因——比如你认为你得不到了——所以你去通过对权力的疯狂追逐来得到一种补偿,我可以说,你堕落了。你天生就是个善良的人,但是,你却因为满足自己的虚荣,而犯下伤害别人的罪,我认为,你堕落了。一个活生生的人,只有先背叛自己,才有可能背叛别人。
关于背叛别人,我想,还要分两种情况:一种是可背叛的,一种是不可背叛的。可背叛的你背叛了,还不能说是堕落。
我想举一个非常具体的例子来分析这个问题。假如一个已婚男子爱上了一个少女,然后,他试图离婚,然后与这少女结婚,这叫不叫堕落?在大部分看来,或许是的。然而,我却不这么认为。首先,假如一份感情是真实的,我们就应该认为这是美好的,并为此而祝福。而他以前的婚姻,只是说是一种过去,这段过去是美好的,并不能证明它能够继续美好下去。在这种情况下,维系一段只有责任而缺乏爱情的生活,这才是真正的堕落。或许有人说的,责任呢?责任不伟大吗?我说,我靠责任。一个人首先有能力对自己负责,才有可能对别人负责。看看现在的中国人吧——父母为子女牺牲,子女为父母牺牲,妻子为丈夫牺牲,丈夫为妻子牺牲,结果最后都牺牲了,没有一个真正快乐的人。我经常告诉别人说,假如这个社会每个人都学会爱自己、照顾好自己,那么这个社会要美好很多。
可惜,毕竟没有太多的人了解这一切。太多的人喜欢用群体意识来靠别人,也顺便把自己给靠了。什么叫群体意识?就是一堆的人在选择炒菜的方式,每个人都定了一个标准,结果争吵了半天,最后就达成了某一个标准。我们很容易看出,这是妥协的结果,而这样炒出来的菜很可能是最没有特色最乏味的一道菜。而这么做的目的是,保证大家不会饿死,同时不会吵架。而如今,我们都有足够的菜可以吃,我们不再担心饿死,我为什么一定要按照群体的标准来炒菜?我为什么不能尊重自己的口味来炒菜?我为什么不可以另起炉灶?
当然,现在看来,这么做是有很大的压力的。我曾经举过一个例子。法国大革命时,巴黎的革命党兴高采烈的去改造被压迫的人,某一天他们就去改造一个妓女。那妓女根本就不理睬他们,因为她根本就不认为自己是被压迫者。于是,革命者就去做妓女的母亲的工作。那位母亲大怒:“我女儿喜欢这个工作,你喜欢做爱,这有什么错?你们男人需要,她满足了这种需要,这有什么错?你们是用身体来工作的,她也是用身体工作的,只是工作的器官不一样而已,这有什么错?”我看到这里,哑然失笑。这是个极端的例子,但是很说明问题。在我看来,那个妓女并没有堕落,她甚至连自己身体的感觉都没有背叛。比较而言,我们社会上的很多的人反倒是堕落,他们违背着自己的感觉,他们远离了自己的灵魂,他们无意识 的在制造谎言,他们本质上是行尸走肉的。
我想,我们不必标榜自己有太多的思想,我看了一看,相当的多的人的思想比那个妓女的还要贫乏。我们忽略了应该重视的东西,却为一些恶心的、毫无意义的东西争论不休。
什么叫做人生?什么叫做有价值的人生?我估计没几个人可以正确的回答出来。我可以从另一个角度回答这个问题:没有令你感到遗憾的人生就是有价值的人生。作为一个活人,你的价值首先是自己的。你要做自己喜欢做的事情,爱自己想爱的人,你不能在你在垂死前突然发现自己的一生中居然有那么多的遗憾,你不能哭泣,你要微笑着说,是的,我经历了,我做了,我无所求了。
看看那些可怜的幻灭者吧。他们为什么感到了幻灭?因为他们把没有价值的东西当成了有价值的东西,而某一天他们发现那仅仅是谎言和垃圾的的时候,他们怎能不痛苦?
看看那些可怜的困惑者吧。他们为什么感到困惑?因为他们失去了自我,他们很少把自己当一个独立的个体来对待,他们的大脑中充斥着社会的契约、父母的教导、老师的经验之谈、朋友的影响,而自己呢?有谁问过你需要什么,你在想什么,你试图做什么?
这就是我要回答的另一个问题,这就是现实,这就是你们在现实中忽略的最致命的缺憾。我们缺少什么?是道德吗?是责任吗?是的,我们也缺乏,但是,我们最缺乏的是真正的尊重。说靠并不是不尊重。真正的尊重是漠视你的个人感觉,是用所谓的群体意识来强奸你、靠你,在把强奸了之后,再把你改造成一个强奸者。是的,在我看来,对于一个个体而言,这就是轮奸。还有比这更为残酷的事情吗?
我并不轻视丧失以及部分丧失了自我意识者。我鄙视的是意识强奸者。这样的强奸者往往道貌岸然,他会很慈祥的告诉你,我没有在靠你,我只是在按照社会的约定与你进行着肌肤摩擦,我这么做是爱你的,当然你也可以摩擦别人,你也可以改造别人。没错,假如我拒绝了这种改造,我就是堕落者。
我当然不妥协,别人强奸了我,我当然也有资格说靠。我认为我说的靠很文雅,我表达的是情绪,是对所谓的高雅的反抗。在上一篇文章里我已经解释得很清楚了。假如你们在我的“靠”中看到了人的下半身,或者看到了性交,那是你们的思想不洁。换句话说,当我看到“做爱”这个词的时候,我想到的是一双眼睛,昏暗的灯光,美丽的身体,亲吻,体温;当然,我相信有的人会联想到器官,联想到液体,甚至联想到体毛。同样的,做爱也是无罪的,我依旧是无辜的。菜刀也是无罪的,我用它切菜,而有的人用来杀人。
假如你们因为“靠”而感到受伤了,那是你们太脆弱。人生中的苦恼还有很多,假如连一个表示情绪的字眼都承受不了,你还有什么资格去面对漫漫的人生?同样,即使这个“靠”字是真的表示做爱,也没有什么大惊小怪的。假如别人真诚的邀请我“靠”,或许我不会去靠,但是我会感到高兴。这说明我还不是一个恶心的人、龌龊的人、毫无魅力的人,这说明还有人对我有了一种冲动,我还可以引起别人的激情,所以,我会很礼貌的说,谢谢。假如这个世界没有任何一个人愿意和你靠一靠,这才是最失败的。因此说,不是“靠”太尖锐,而是你们太脆弱,你们太盲目,你们太不敢正视自己的肉体和灵魂。
好了。最后总结几句:当我们生活这个不可理喻的世界上,当抹去世俗的灰尘,当我们在现实的现实中苦苦挣扎的时候,我们还拥有什么?我想,我们至少还拥有自己的灵魂,我们至少还拥有一双明亮的眼睛,我们至少还拥有爱人或是在某处等待你的爱人,我们至少还拥有响亮的说一声“我靠”的权力。
是啊,我们还拥有什么?我想回答这个问题。
首先,我想和你探讨一下什么叫堕落。在我看来,堕落其实就是一种背叛。然而,这种背叛不是针对别人的,而是针对自己的。你背叛了你自己的原则,你背叛了自己的感觉,你背叛了你的灵魂,那么,我说你就堕落了。举例说,你是个向往灵魂自由的人,但是,你却因为其他的原因——比如你认为你得不到了——所以你去通过对权力的疯狂追逐来得到一种补偿,我可以说,你堕落了。你天生就是个善良的人,但是,你却因为满足自己的虚荣,而犯下伤害别人的罪,我认为,你堕落了。一个活生生的人,只有先背叛自己,才有可能背叛别人。
关于背叛别人,我想,还要分两种情况:一种是可背叛的,一种是不可背叛的。可背叛的你背叛了,还不能说是堕落。
我想举一个非常具体的例子来分析这个问题。假如一个已婚男子爱上了一个少女,然后,他试图离婚,然后与这少女结婚,这叫不叫堕落?在大部分看来,或许是的。然而,我却不这么认为。首先,假如一份感情是真实的,我们就应该认为这是美好的,并为此而祝福。而他以前的婚姻,只是说是一种过去,这段过去是美好的,并不能证明它能够继续美好下去。在这种情况下,维系一段只有责任而缺乏爱情的生活,这才是真正的堕落。或许有人说的,责任呢?责任不伟大吗?我说,我靠责任。一个人首先有能力对自己负责,才有可能对别人负责。看看现在的中国人吧——父母为子女牺牲,子女为父母牺牲,妻子为丈夫牺牲,丈夫为妻子牺牲,结果最后都牺牲了,没有一个真正快乐的人。我经常告诉别人说,假如这个社会每个人都学会爱自己、照顾好自己,那么这个社会要美好很多。
可惜,毕竟没有太多的人了解这一切。太多的人喜欢用群体意识来靠别人,也顺便把自己给靠了。什么叫群体意识?就是一堆的人在选择炒菜的方式,每个人都定了一个标准,结果争吵了半天,最后就达成了某一个标准。我们很容易看出,这是妥协的结果,而这样炒出来的菜很可能是最没有特色最乏味的一道菜。而这么做的目的是,保证大家不会饿死,同时不会吵架。而如今,我们都有足够的菜可以吃,我们不再担心饿死,我为什么一定要按照群体的标准来炒菜?我为什么不能尊重自己的口味来炒菜?我为什么不可以另起炉灶?
当然,现在看来,这么做是有很大的压力的。我曾经举过一个例子。法国大革命时,巴黎的革命党兴高采烈的去改造被压迫的人,某一天他们就去改造一个妓女。那妓女根本就不理睬他们,因为她根本就不认为自己是被压迫者。于是,革命者就去做妓女的母亲的工作。那位母亲大怒:“我女儿喜欢这个工作,你喜欢做爱,这有什么错?你们男人需要,她满足了这种需要,这有什么错?你们是用身体来工作的,她也是用身体工作的,只是工作的器官不一样而已,这有什么错?”我看到这里,哑然失笑。这是个极端的例子,但是很说明问题。在我看来,那个妓女并没有堕落,她甚至连自己身体的感觉都没有背叛。比较而言,我们社会上的很多的人反倒是堕落,他们违背着自己的感觉,他们远离了自己的灵魂,他们无意识 的在制造谎言,他们本质上是行尸走肉的。
我想,我们不必标榜自己有太多的思想,我看了一看,相当的多的人的思想比那个妓女的还要贫乏。我们忽略了应该重视的东西,却为一些恶心的、毫无意义的东西争论不休。
什么叫做人生?什么叫做有价值的人生?我估计没几个人可以正确的回答出来。我可以从另一个角度回答这个问题:没有令你感到遗憾的人生就是有价值的人生。作为一个活人,你的价值首先是自己的。你要做自己喜欢做的事情,爱自己想爱的人,你不能在你在垂死前突然发现自己的一生中居然有那么多的遗憾,你不能哭泣,你要微笑着说,是的,我经历了,我做了,我无所求了。
看看那些可怜的幻灭者吧。他们为什么感到了幻灭?因为他们把没有价值的东西当成了有价值的东西,而某一天他们发现那仅仅是谎言和垃圾的的时候,他们怎能不痛苦?
看看那些可怜的困惑者吧。他们为什么感到困惑?因为他们失去了自我,他们很少把自己当一个独立的个体来对待,他们的大脑中充斥着社会的契约、父母的教导、老师的经验之谈、朋友的影响,而自己呢?有谁问过你需要什么,你在想什么,你试图做什么?
这就是我要回答的另一个问题,这就是现实,这就是你们在现实中忽略的最致命的缺憾。我们缺少什么?是道德吗?是责任吗?是的,我们也缺乏,但是,我们最缺乏的是真正的尊重。说靠并不是不尊重。真正的尊重是漠视你的个人感觉,是用所谓的群体意识来强奸你、靠你,在把强奸了之后,再把你改造成一个强奸者。是的,在我看来,对于一个个体而言,这就是轮奸。还有比这更为残酷的事情吗?
我并不轻视丧失以及部分丧失了自我意识者。我鄙视的是意识强奸者。这样的强奸者往往道貌岸然,他会很慈祥的告诉你,我没有在靠你,我只是在按照社会的约定与你进行着肌肤摩擦,我这么做是爱你的,当然你也可以摩擦别人,你也可以改造别人。没错,假如我拒绝了这种改造,我就是堕落者。
我当然不妥协,别人强奸了我,我当然也有资格说靠。我认为我说的靠很文雅,我表达的是情绪,是对所谓的高雅的反抗。在上一篇文章里我已经解释得很清楚了。假如你们在我的“靠”中看到了人的下半身,或者看到了性交,那是你们的思想不洁。换句话说,当我看到“做爱”这个词的时候,我想到的是一双眼睛,昏暗的灯光,美丽的身体,亲吻,体温;当然,我相信有的人会联想到器官,联想到液体,甚至联想到体毛。同样的,做爱也是无罪的,我依旧是无辜的。菜刀也是无罪的,我用它切菜,而有的人用来杀人。
假如你们因为“靠”而感到受伤了,那是你们太脆弱。人生中的苦恼还有很多,假如连一个表示情绪的字眼都承受不了,你还有什么资格去面对漫漫的人生?同样,即使这个“靠”字是真的表示做爱,也没有什么大惊小怪的。假如别人真诚的邀请我“靠”,或许我不会去靠,但是我会感到高兴。这说明我还不是一个恶心的人、龌龊的人、毫无魅力的人,这说明还有人对我有了一种冲动,我还可以引起别人的激情,所以,我会很礼貌的说,谢谢。假如这个世界没有任何一个人愿意和你靠一靠,这才是最失败的。因此说,不是“靠”太尖锐,而是你们太脆弱,你们太盲目,你们太不敢正视自己的肉体和灵魂。
好了。最后总结几句:当我们生活这个不可理喻的世界上,当抹去世俗的灰尘,当我们在现实的现实中苦苦挣扎的时候,我们还拥有什么?我想,我们至少还拥有自己的灵魂,我们至少还拥有一双明亮的眼睛,我们至少还拥有爱人或是在某处等待你的爱人,我们至少还拥有响亮的说一声“我靠”的权力。
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <math.h>
//#include "/usr/local/mysql/include/mysql/mysql.h"
#include "/usr/local/mysql/include/mysql.h"
using namespace std;
int main(void)
{
cout << "Content-type: text/html \n\n";
char mysqlServer[20] = "172.25.38.70";
char query[300];
MYSQL myData;
MYSQL_RES *res;
MYSQL_FIELD *fd;
MYSQL_ROW row;
int rowCount = 0;
int colCount = 0;
int i, j;
mysql_init( &myData );
if(!mysql_real_connect(&myData, mysqlServer, "root", "","test3",3306,NULL,0))
{
printf("connect mysql error!\n");
return 0;
}
mysql_query(&myData,"set names utf8");
sprintf(query,"select * from test3");
if( mysql_query(&myData, query) != 0 )
{
printf("query error!\n");
return 0;
}
else
{
res = mysql_store_result( &myData );
rowCount = (int) mysql_num_rows( res );
colCount = (int) mysql_num_fields( res );
printf("mysql result: %d records found\n fields: %d \n", rowCount, colCount);
for(i = 0; i < rowCount; i++)
{
row = mysql_fetch_row( res );
for( j = 0; j < colCount; j++)
{
printf("[ %s ] ", row[j] );
printf(" \t");
}
printf("______ %d\n",i);
printf(" \n ");
}
}
}
正确的编译命令代码:
g++ c_mysql.cpp -L/usr/local/mysql/lib/ -lmysqlclient -lz -lm -o cout
注意:
如果/tmp/ccTGmMS21.o: In function `main':
/tmp/ccTGmMS21.o(.text+0x11): undefined reference to `mysql_init'
那么参数增加-L/usr/lib/mysql -lmysqlclient
如果
usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
my_compress.o(.text+0xaa): undefined reference to `uncompress'
那么增加-lz参数
规范点: g++ c_mysql.cpp -L/usr/local/mysql/lib/ -lmysqlclient -lz -lm
mail# cd /usr/ports/net/ntop
mail# make install clean
===> Installing for ntop-3.3_1
===> ntop-3.3_1 depends on executable: dot - not found
===> Verifying install for dot in /usr/ports/graphics/graphviz
===> graphviz-2.14.1_1 depends on executable: wish8.4 - found
===> graphviz-2.14.1_1 depends on executable: gmake - found
===> graphviz-2.14.1_1 depends on executable: bison - found
===> graphviz-2.14.1_1 depends on file: /usr/local/bin/libtool - found
===> graphviz-2.14.1_1 depends on file: /usr/local/libdata/xorg/libraries - not found
===> Verifying install for /usr/local/libdata/xorg/libraries in /usr/ports/x11/xorg-libraries
/usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports.*** Error code 1
Stop in /usr/ports/x11/xorg-libraries.
*** Error code 1
Stop in /usr/ports/graphics/graphviz.
*** Error code 1
Stop in /usr/ports/net/ntop.
*** Error code 1
Stop in /usr/ports/net/ntop.
mail# rm /usr/X11R6/
*********
from the error messages:
usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports
SO WE SHOULD REMOVE THE sysmlink /usr/X11R6
>rm -r /usr/X11R6
mail# make install clean
===> Installing for ntop-3.3_1
===> ntop-3.3_1 depends on executable: dot - not found
===> Verifying install for dot in /usr/ports/graphics/graphviz
===> graphviz-2.14.1_1 depends on executable: wish8.4 - found
===> graphviz-2.14.1_1 depends on executable: gmake - found
===> graphviz-2.14.1_1 depends on executable: bison - found
===> graphviz-2.14.1_1 depends on file: /usr/local/bin/libtool - found
===> graphviz-2.14.1_1 depends on file: /usr/local/libdata/xorg/libraries - not found
===> Verifying install for /usr/local/libdata/xorg/libraries in /usr/ports/x11/xorg-libraries
/usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports.*** Error code 1
Stop in /usr/ports/x11/xorg-libraries.
*** Error code 1
Stop in /usr/ports/graphics/graphviz.
*** Error code 1
Stop in /usr/ports/net/ntop.
*** Error code 1
Stop in /usr/ports/net/ntop.
mail# rm /usr/X11R6/
*********
from the error messages:
usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports
SO WE SHOULD REMOVE THE sysmlink /usr/X11R6
>rm -r /usr/X11R6
前些年,城里人嘴里都流行一个词“乡巴佬”,后来就不怎么说了,可不知为什么,最近网络中又兴起了对“凤凰男”的讨论。
所谓“凤凰男”,就是指集全家之力于一身,发愤读书十余年,终于成为“山窝里飞出的金凤凰”,从而为一个家族蜕变带来希望的男性。他们进城市后,一般都能娶个城里老婆,过上城市生活,但由于原先的农村身份打下的烙印,使得他们与孔雀女(城市女孩)的爱情、婚姻和家庭,产生了种种问题。
从网络发帖的情况,声讨“凤凰男”的大多是“孔雀女”,这批人上网的时间充足,而且擅长于情感故事的编织,所以,几个强帖下去,“凤凰男”自然成了“过街老鼠,人人喊打”。她们认为,“凤凰男”既自卑又自傲,很难伺候,而且太顾父母,从而滋生出“歧视女性”和“大家族”两种观念,成为破坏婚姻的罪魁祸首。对此,有人出来反驳到,“你接触过多少凤凰男,难道孔雀女找孔雀男就没有婚姻破裂,家庭暴力” ?由此可见,这种城乡婚姻容易破裂的根本原因在于双方的生活背景不同,而绝不仅仅是一个人的责任。
众所周知,1958年后中国逐渐成型的城乡二元户籍制度,不但在经济上以“剪刀差”的形式汲取农村资源,而且在政治上造成了两种国民身份,这就为群族歧视提供了土壤。
其实群族歧视在中国由来已久,最有名的是上海人对外地人的歧视,这里既有经济因素,也有心理因素,所以有人说,上海人的自大是经济的突然膨胀导致自我认识上的迷失,上海人的歧视更是一、二百年来惨遭列强蹂躏后自我保护意识上的恶性延伸。有学者把这种心态归为“中原心态”,说白了,就是通过贬低并固化在某方面不如自己的族群,来维持自己既得的优势地位。
总之,从前些年流行的“乡巴佬”到今天流行的“凤凰男”,城里人对农村人的歧视由“外表”退到“内在”,这说明它的合理性在逐渐减弱。但歧视的土壤并没有完全清除,所以,当我们不经意间触碰到那根“歧视的神经”时,请别忘了,警惕“中原心态”!
所谓“凤凰男”,就是指集全家之力于一身,发愤读书十余年,终于成为“山窝里飞出的金凤凰”,从而为一个家族蜕变带来希望的男性。他们进城市后,一般都能娶个城里老婆,过上城市生活,但由于原先的农村身份打下的烙印,使得他们与孔雀女(城市女孩)的爱情、婚姻和家庭,产生了种种问题。
从网络发帖的情况,声讨“凤凰男”的大多是“孔雀女”,这批人上网的时间充足,而且擅长于情感故事的编织,所以,几个强帖下去,“凤凰男”自然成了“过街老鼠,人人喊打”。她们认为,“凤凰男”既自卑又自傲,很难伺候,而且太顾父母,从而滋生出“歧视女性”和“大家族”两种观念,成为破坏婚姻的罪魁祸首。对此,有人出来反驳到,“你接触过多少凤凰男,难道孔雀女找孔雀男就没有婚姻破裂,家庭暴力” ?由此可见,这种城乡婚姻容易破裂的根本原因在于双方的生活背景不同,而绝不仅仅是一个人的责任。
众所周知,1958年后中国逐渐成型的城乡二元户籍制度,不但在经济上以“剪刀差”的形式汲取农村资源,而且在政治上造成了两种国民身份,这就为群族歧视提供了土壤。
其实群族歧视在中国由来已久,最有名的是上海人对外地人的歧视,这里既有经济因素,也有心理因素,所以有人说,上海人的自大是经济的突然膨胀导致自我认识上的迷失,上海人的歧视更是一、二百年来惨遭列强蹂躏后自我保护意识上的恶性延伸。有学者把这种心态归为“中原心态”,说白了,就是通过贬低并固化在某方面不如自己的族群,来维持自己既得的优势地位。
总之,从前些年流行的“乡巴佬”到今天流行的“凤凰男”,城里人对农村人的歧视由“外表”退到“内在”,这说明它的合理性在逐渐减弱。但歧视的土壤并没有完全清除,所以,当我们不经意间触碰到那根“歧视的神经”时,请别忘了,警惕“中原心态”!