#1
by もこ » 1年前
全てmain()関数の中で
STLデータの座標をファイルから読み取り、
x,y,zの昇順で並び替える、、
というところまで来たのですがエラーが出ました。
読み取って出力することはできたのですが、クイックソートを入れたら途端にエラーが出るようになりました。
エラーがなぜ出るか分かりません!
ご教授下さい!
コード:
#include <iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
double** prepoint;
ifstream fin(" ");//ふぁいるのありか
if (!fin) {
printf("don't open file.");
}
string tmp;
int i =0;
getline(fin, tmp);
while (1) {
fin >> tmp;
if (tmp.compare("vertex")==0) {
prepoint = new double* [i+1];
prepoint[i] = new double[3];
for (int j = 0; j < 3; j++) {
fin >> prepoint[i][j];
cout << prepoint[i][j] << endl;
}
//cout << i << '\t' << prepoint[i][0] << '\t' << prepoint[i][1] << '\t' << prepoint[i][2] << endl;
i++;
}
else if(tmp.substr(0, 8) == "endsolid") {//8文字列がendsolidなら
break;
}
}
/*
while (1)
{
int n = 0;
for (int l = 0; l < i; l++) {
if (prepoint[l][0] > prepoint[l + 1][0]) {
double tmp;
tmp = prepoint[l][0];
prepoint[l][0] = prepoint[l + 1][0];
prepoint[l + 1][0] = tmp;
n++;
}
else if (prepoint[l][0] == prepoint[l + 1][0]) {
if (prepoint[l][1] > prepoint[l + 1][1]) {
double tmp;
tmp = prepoint[l][1];
prepoint[l][1] = prepoint[l + 1][1];
prepoint[l + 1][1] = tmp;
n++;
}
else if (prepoint[l][1] == prepoint[l + 1][1]) {
if (prepoint[l][2] > prepoint[l + 1][2]) {
double tmp;
tmp = prepoint[l][2];
prepoint[l][2] = prepoint[l + 1][2];
prepoint[l + 1][2] = tmp;
n++;
}
}
}
if (n == 0)
break;
}
}
*/
}
全てmain()関数の中で
STLデータの座標をファイルから読み取り、
x,y,zの昇順で並び替える、、
というところまで来たのですがエラーが出ました。
読み取って出力することはできたのですが、クイックソートを入れたら途端にエラーが出るようになりました。
エラーがなぜ出るか分かりません!
ご教授下さい!
[code]
#include <iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
double** prepoint;
ifstream fin(" ");//ふぁいるのありか
if (!fin) {
printf("don't open file.");
}
string tmp;
int i =0;
getline(fin, tmp);
while (1) {
fin >> tmp;
if (tmp.compare("vertex")==0) {
prepoint = new double* [i+1];
prepoint[i] = new double[3];
for (int j = 0; j < 3; j++) {
fin >> prepoint[i][j];
cout << prepoint[i][j] << endl;
}
//cout << i << '\t' << prepoint[i][0] << '\t' << prepoint[i][1] << '\t' << prepoint[i][2] << endl;
i++;
}
else if(tmp.substr(0, 8) == "endsolid") {//8文字列がendsolidなら
break;
}
}
/*
while (1)
{
int n = 0;
for (int l = 0; l < i; l++) {
if (prepoint[l][0] > prepoint[l + 1][0]) {
double tmp;
tmp = prepoint[l][0];
prepoint[l][0] = prepoint[l + 1][0];
prepoint[l + 1][0] = tmp;
n++;
}
else if (prepoint[l][0] == prepoint[l + 1][0]) {
if (prepoint[l][1] > prepoint[l + 1][1]) {
double tmp;
tmp = prepoint[l][1];
prepoint[l][1] = prepoint[l + 1][1];
prepoint[l + 1][1] = tmp;
n++;
}
else if (prepoint[l][1] == prepoint[l + 1][1]) {
if (prepoint[l][2] > prepoint[l + 1][2]) {
double tmp;
tmp = prepoint[l][2];
prepoint[l][2] = prepoint[l + 1][2];
prepoint[l + 1][2] = tmp;
n++;
}
}
}
if (n == 0)
break;
}
}
*/
}