65,211
社区成员
发帖
与我相关
我的任务
分享
#include "string"
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main()
{
char C[] = {"+-XF+YFY+FX-F-+YF-XFX-FY+F+YF-XFX-FY+-F-XF+YFY+FX-+"};
double l = 1.0, X[52] = {0.0}, Y[52] = {0.0};
double dtor = 3.1415926 / 180;
int th = 0, Tsize = 0, j = 0, i;
for (i = 0;i < 1000;i++)
{
if (C[i] == '-')
th += 90;
else if (C[i] == '+')
th -= 90;
else if (C[i] == 'F')
{
X[j] = X[j] + l * cos(th * dtor);
Y[j] = Y[j] + l * sin(th * dtor);
++j;
Tsize = j;
}
else if (C[i] == 'X' || C[i] == 'Y')
continue;
else if (C[i] == '\0')
break;
}
for (j = 0;j < Tsize;j++)
cout << X[j] << "\t" << Y[j] << "\n";
FILE *fp;
fp = fopen("data.txt", "wt");//这里/data.txt得不到的 去掉"/"就行
char buf[32];
for (j = 0;j < Tsize;j++)
{
sprintf(buf, "%3.4f %3.4f\n", X[j], Y[j]);//这里帮你加了个\n 就可以换行显示了
fwrite(buf,strlen(buf), 1, fp);//乱码是因为这里的第2个参数应该是buf的长度,你强制都18剩下的部分当然乱码,用strlen处理后不会了
}
fclose(fp);
return 0;
}
//fwrite(buf,18,1,fp);
fwrite(buf,1,18,fp);
for(j=0;j <Tsize;j++)
{
fprintf(fp, "%3.4f %3.4f\n",X[j],Y[j]);
}
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main()
{
char C[] = {"+-XF+YFY+FX-F-+YF-XFX-FY+F+YF-XFX-FY+-F-XF+YFY+FX-+"};
double l = 1.0, X[52] = {0.0}, Y[52] = {0.0};
double dtor = 3.1415926 / 180;
int th = 0, Tsize = 0, j = 0, i;
for (i = 0;i < 1000;i++)
{
if (C[i] == '-')
th += 90;
else if (C[i] == '+')
th -= 90;
else if (C[i] == 'F')
{
X[j] = X[j] + l * cos(th * dtor);
Y[j] = Y[j] + l * sin(th * dtor);
++j;
Tsize = j;
}
else if (C[i] == 'X' || C[i] == 'Y')
continue;
else if (C[i] == '\0')
break;
}
for (j = 0;j < Tsize;j++)
cout << X[j] << "\t" << Y[j] << "\n";
FILE *fp;
fp = fopen("/data.txt", "wt");
char buf[32];
for (j = 0;j < Tsize;j++)
{
sprintf(buf, "%3.4f %3.4f", X[j], Y[j]);
fwrite(buf, 18, 1, fp);
}
fclose(fp);
return 0;
}