ए std::string
उदाहरण !=
या ==
ऑपरेटरों का उपयोग कर स्ट्रिंग अक्षर के साथ सीधे तुलना की जा सकती है। यह आपकी तुलना स्पष्ट बनाता है।
ध्यान दें कि \e
मान्य वर्ण से बचने वाला नहीं है, तो आपको \
को दोगुना करने की आवश्यकता है यदि आपका मतलब शाब्दिक \\
है।
while(cmd == "exit" && cmd == "\\exit")
जाहिर cmd
एक ही समय में दो अलग-अलग तार के बराबर नहीं हो सकता है, शायद आप !=
मतलब है।
यह भी विचार करें कि std::getline(std::cin, cmd)
std::cin >> cmd;
से अधिक उचित है या नहीं। किसी भी मामले में आपको पढ़ने के ऑपरेशन की सफलता की जांच करनी चाहिए अन्यथा यदि स्ट्रीम बंद हो या विफल स्थिति में प्रवेश हो तो आप अनंत लूप में समाप्त हो सकते हैं।
व्यक्तिगत रूप से मैं इस तरह कुछ के साथ जाऊंगा, यह मानते हुए कि आप निकास कमांड को अपने कोड के रूप में गूंजना चाहते हैं।
#include <string>
#include <iostream>
#include <ostream>
int main()
{
std::string cmd;
while (std::getline(std::cin, cmd))
{
std::cout << cmd << std::endl;
if (cmd == "exit" || cmd == "\\exit")
break;
}
return 0;
}
स्रोत
2010-05-28 19:00:10
यह –
@Brian प्रश्न में सीधे कोड पेस्ट करना बेहतर है: मैं चला गया और वह किया। – sbi
इसके अलावा, अगर आप strcmp (cms, c_str(), "exit") के बजाय cmd.compare ("exit") का उपयोग करते हैं तो यह क्लीनर है == 0 आप सी ++ कोड लिख रहे हैं। इसका लाभ क्यों नहीं लेते? – Vagrant