ユーザー入力の文字列でプログラムを実行し、関数を呼び出すたびに、入力した内容に関係なくセグメント化エラーが発生します。私はかなり経験がなく、どんなインプットも高く評価されています。私のプログラムがクラッシュする文字列を入力しようとするたびに、問題は私の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ストレージ(" ");'私のためにコンパイルされません –
krzaq
申し訳ありません!私は、初期化の助けになるかもしれないと思っていましたが、これを削除して、ここに掲載されたコードに修正しました。まだ実行中の欠陥を取得します。 –
あなたはロジックに少しの欠陥があるようです。私は空の文字列が入力されたときにループを終了したいと思いますか?次に、それを確認する必要があります。私。 'if(temp.empty()){ブレーク; } ' –