作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [请益] 又一个Warning的问题
时间Tue Oct 7 19:31:40 2008
※ 引述《ric2k1 (Ric)》之铭言:
: ※ 引述《michael0728n (蒜˙远古)》之铭言:
: : 我在compile时跑出[Warning]'\040'跟[Warning]'\241'
: : 本来以为是复制贴上的问题
: : (心理测验的答案用复制的)
: : 结果把错误的地方重打还是一样
: : 经过测试後"餐"这个字显示不出来= =
: : 是M$输入法的问题吗??
: 因为根据我的测试, "餐" 这个字的 big5 code 是 -64 92,
: 而 92 所对应的 character 是 '\'... 所以会抱怨接下来的 escape 字元不认得...
: 你可以试试看:
: char c1 = -64;
: char c2 = 92;
: cout << c1 << c2;
: 就像 "功" 这个字的 code 是 -91 92 一样... (功字事件)
: ---
: M$: 郎毋系挖台ㄟ... 里那颗斯也是这样D
写个程式给大家参考一下:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char ch;
do {
ch = getche();
cout << endl << "code = " << int(ch) << endl;
} while (ch != 'q');
system("pause");
}
你可以输入中文字, 或者是按任何键...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.130.118
1F:→ saevia:不懂? 10/07 23:25
2F:→ ric2k1:执行看看就知道啦... 10/07 23:33
3F:推 BloodyDuke:输入英文字母为什麽会留在萤幕上? 10/09 22:52
4F:→ ric2k1:因为你输入英文字, 所以他会留在萤幕上啊! 10/10 00:48
5F:→ ric2k1:而中文字则是被拆两半, 印出来的变成 ASC(-64),ASC(92)='\' 10/10 00:49
6F:推 BloodyDuke:喔,可是为什麽不是直接跑出而-64,endl,92 10/12 00:29
7F:→ BloodyDuke:而会多出一个不是int的\,才又跑出92呢? 10/12 00:31
8F:→ BloodyDuke:又为何又会再cout一个92(感觉92已被\吃掉了阿) 10/12 00:35
9F:→ ric2k1:你可以输入一般的英文字母看看... 10/13 00:24
10F:→ ric2k1:你会看到的顺序是: 输入的英文字母先印出来 (因为你打的呀) 10/13 00:25
11F:→ ric2k1:然後 endl, 然後 再印出 code = (英文字母的 ASCII code) 10/13 00:26
12F:→ ric2k1:至於如果你输入 '餐' 这个字的话, 就好像你在"键盘"上 10/13 00:27
13F:→ ric2k1:连续输入 char(-64) 以及 char(92) = '\' 两个字元. 10/13 00:28
14F:→ ric2k1:请多实验几种状况, 我也不知道要怎麽说才能更明白了... 10/13 00:29
15F:→ ric2k1:不过建议大家一定要弄懂, 期中考一定会考这种观念要弄清楚 10/13 00:30
16F:→ ric2k1:的东西 10/13 00:30
17F:推 BloodyDuke:恩了了,又原来这是重要观念阿(还以为自己问的不重要) 10/13 21:55