我試圖用用戶輸入字符串填充矢量,每次運行程序並調用函數時,無論輸入什麼內容,都會出現分段錯誤。我相當缺乏經驗,任何意見都表示讚賞。問題出在我的entry()函數中,每當我嘗試輸入一個字符串時,我的程序崩潰。我想知道爲什麼我每次都在同一位置看到分段錯誤。我錯過了明顯的東西嗎?向量回推中的分段錯誤
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <algorithm>
class Interface
{
private:
std::vector<std::string> storage;
std::vector<bool> flag;
int i;
std::string temp;
//temp
int t;
public:
void entry();
void display();
void remove();
void complete();
void exit();
void recursiveBonus();
};
void Interface::entry()
{
i = 0;
do
{
std::cout << "Please enter a task:" << std::endl;
getline(std::cin, temp);
storage.push_back(temp);
flag.push_back(false);
i++;
}while(storage[i] != " ");
};
'std :: vector storage(「」);'不能爲我編譯 –
krzaq
糟糕,抱歉!我一直在嘗試一堆東西來讓它起作用,認爲初始化可能會有所幫助,但我已經從中刪除了它,並在此處發佈的代碼中修復了它。運行中仍然存在故障。 –
你的邏輯似乎有點有缺陷的循環。我假設你想在輸入空字符串時結束循環?那你應該檢查一下。即if(temp.empty()){break; }' –