我在嘗試在C++中執行指針循環時遇到了問題。我想要做的是,用戶可以保持輸入消息,並且新行上的消息將被追加。它只會在「。」時停止提示。在新行的開始處被檢測到。這是我的主要方法:使用指針時無限循環
vector <Message*> message_list;
Message* message1 = new Message("Student1", "Student2");
cout << "Enter message text line, enter . on new line to finish: " << endl;
while(getline(cin, message1->get_text_input()))
{
if(message1->get_text_input() == ("."))
{
break;
}
else
{
message1->append(message1->get_text_input());
}
}
}
這是我的.cpp文件:
Message::Message(string recipient, string sender)
{
this->recipient = recipient;
this->sender = sender;
}
string Message::get_text_input()
{
return text_input;
}
void Message::append(string text)
{
message += text + "\n";
}
string Message::to_string() const
{
return ("From: " + sender + "\n" + "To: " + recipient + "\n");
}
void Message::print() const
{
cout << message;
}
我的頭類:
class Message
{
public:
Message(std::string recipient, std::string sender);
std::string get_text_input();
void append(std::string text);
std::string to_string() const;
void print() const;
private:
std::string recipient;
std::string sender;
std::string message;
std::string text_input;
char* timestamp;
};
是否有人知道爲什麼會這樣呢?甚至「。」被檢測到,它仍然不會停止。
在此先感謝。
'getline(cin,message1-> get_text_input())'編譯?它不應該。 –
請不要張貼在多個名稱http://stackoverflow.com/questions/17362152/getline-method-no-instance-of-overloaded-function –
但我該怎麼寫getline(cin,text_input)?因爲如果我這樣做,我會打錯誤信息。我會更新我的頭文件 –