Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

請指教

0 views
Skip to first unread message

思考的魔鬼

unread,
Apr 6, 1997, 4:00:00 AM4/6/97
to

#include<iostream.h>

void main(void)
{
char *command = new char[40];
while(command != "quit")
{
cin>>command;
}
delete [] command;
}

怪怪的說!!
為什麼我打quit還是不會跳出迴圈??
請指教
--
[35;46m俏月色 清燈樓 寧靜學舍伴寂寞 [0m
[35;46m春風吹 夏雨落 一段歲月 青春流落 [0m
[35;46m盼 盼 盼 [0m
[35;46m人如舊 情淡陌 淚灑佳人心無所 [0m
[35;46m難割捨 卻執著 一世真情 為愛失落 [0m
[35;46m過 過 過 [0m [1;5;33m釵頭鳳 [0m
Ξ Origin: 中正大學寂寞芳心小站 <bbs.ccu.edu.tw> [FROM: 140.123.219.248]

roland

unread,
Apr 6, 1997, 4:00:00 AM4/6/97
to

: char *command = new char[40];
: while(command != "quit")
: { ^^^^^^^ ^^^^^ 這兩個 Address 是不可能相等的
: 怪怪的說!!
: 為什麼我打quit還是不會跳出迴圈??
不其怪吧? 用 strcmp 才對....


--
※ [36;1m風信遊子 [35m(bbs.cm.nctu.edu.tw) [37m ★ [33mPost From: [34m wb.Dorm5.NCTU.edu.tw [m★

楊桃小石子

unread,
Apr 6, 1997, 4:00:00 AM4/6/97
to

※ 引述《rolan...@bbs.cm.nctu.edu.tw (roland)》之原文:
: : char *command = new char[40];

: : while(command != "quit")
: : { ^^^^^^^ ^^^^^ 這兩個 Address 是不可能相等的
: : 怪怪的說!!
: : 為什麼我打quit還是不會跳出迴圈??
: 不其怪吧? 用 strcmp 才對....

嗯.....可能basic寫多了,就會有這樣的錯覺囉!

--
※ 貓空行館小小貓 gym... 從 140.119.195.243 來此打尖休息
●Origin: 政大資科貓空行館● <bbs.cs.nccu.edu.tw> [140.119.164.150]

Black

unread,
Apr 7, 1997, 3:00:00 AM4/7/97
to

※ 引述《gentle...@bbs.ccu.edu.tw (思考的魔鬼)》之銘言:
: #include<iostream.h>
: void main(void)
: {

: char *command = new char[40];
: while(command != "quit")
: {
: cin>>command;

: }
: delete [] command;
: }
: 怪怪的說!!
: 為什麼我打quit還是不會跳出迴圈??
: 請指教
基本上, 這個程式是永遠不會結束的
因為在 while( command != "quit" ) 的敘述中
1 command 是一個 pointer, 代表的是一個位址
2 "quit" 也是一個位址, compiler會自動產生一塊空間, 將其內容
填入 q u i t \0, 並將 q 位址傳回來
所以 command != "quit" 是永遠會成立的
你要用的應該是 strcmp( command, "quit") 這類的 function

--
※ Origin: 台大機械 (bbs.me.ntu.edu.tw) ◆ From: 140.112.16.99

0 new messages