作者NOtWorThy (天意不可微 可微则连续)
看板C_and_CPP
标题[问题] 一时糊涂帮抓bug
时间Tue Apr 28 02:02:45 2009
char array_a[max];
char array_b[max];
cin >> array_a; for(;array_a[N++]!='\0';) {}
cin >> array_b; for(;array_b[M++]!='\0';) {}
cout << "number_1: ";
for(int i = 0; i < N; i++) cout << (int)array_a[i] - '0';
为什麽我输出的结果後面都会出现-48呢??
不懂@!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.91.18
1F:→ sunneo:如果字元有3个字 那麽N就在4 04/28 02:06
2F:→ sunneo:array_a这时只有0 1 2有非0值 array_a[3]放的是\0 04/28 02:08
3F:→ sunneo:所以到了i == N-1的时候 恰好在0,0-'0'就是 -'0' == -48 04/28 02:09
4F:→ sunneo:把++N的事情写在for的第三栏可以解决 04/28 02:09
5F:→ sunneo:(a[0]!=0) => N=1... (a[2]!=0)=> N=3.. (a[3]==0) =>N=4 04/28 02:13
6F:→ NOtWorThy:已解决 感谢大神~ 04/28 02:15
7F:→ sunneo:啊 我不是大神.. 04/28 02:17