編集:現在の問題をよりよく反映するようにタイトルを変更しました。文字列がベクトル配列に複製されています
私は今、問題の原因となっていたことを知っています、それは関数のテキスト分割の部分です。今私が何をしたのか覚えています。私のチュートリアルではエラーが返ってきたので分割したテキストを変更しました。
for(const char *c=text;*c;c++)
{
if(*c=='\n') {
string line;
for(const char *n=start_line;n<c;n++) line.append(1,*n);
lines.push_back(line);
start_line=c+1;
}
}
if(start_line)
{
string line;
for(const char *n=start_line; n < c;n++) line.append(1,*n);
lines.push_back(line);
}
「c」が宣言されていない返していました、そして、他のCについては言及がありませんので、私はそれが上記のforループでポインタを参照だと思います。 "if(start_line)"を最初のコードブロックに持っていきましたが、文字全体の代わりにテキスト内の各文字を返していました。
は、だから私は、次のようにコードを変更:
for(const char *c=text;*c;c++)
{
if(*c=='\n')
{
string line;
for(const char *n=start_line;n<c;n++) line.append(1,*n);
lines.push_back(line);
start_line=c+1;
if(start_line)
{
string line;
for(const char *n=start_line;n<c;n++) line.append(1,*n);
lines.push_back(line);
}
}
else if (*c == *start_line)
{
lines.push_back(text);
}
}
I "他の場合(* C == * start_line)" comparsionは私に問題を引き起こしているものであることをかなり確信して。それを置き換えるものは確かです。
for(const char *c=text;*c;c++)
{
lines.push_back(text);
break;
}
しかし、まだあった私が間違っているつもりだった知っていいだろう:私は私がすべての改行を使用していないか、私はちょうどに行くことができますする予定はありませんのでけれどもね。 *注:上記のコードはうまくいきました。問題はなく、倍増効果もあります。だから私はそれが私のテキスト分割コードだと確信しています。
イメージは非常に小さいです - 正直なところ、私は問題を見ることができません:/ちょうど発言:あなたは深度バッファを使用していないですか? –
@cli_hlt画像を右クリック→画像の表示(または画像の位置をコピーし、選択したウィンドウやタブにURLを貼り付ける)することで、フル解像度で画像を見ることができます。 – 01d55
@ 01d55ああ、あなたに感謝しています。したがって、私はあなたの答えに従います - 私たちが持っている情報を最もよく推測するようです。 +1 –