Part 1 寫檔
1.New file->Empty file
2.Save as -> week13_fprintf.cpp
#include <stdio.h>
int main()
{
FILE *fout = fopen("output.txt", "w+");
///FILE的指標 FILE開檔 檔名 要寫write新增檔案
fprintf(fout,"Hello World\n");
///寫檔
}
3.執行後會增加一個output的文字檔,檔案裡寫著Hello World
4.File->New->Project , GLUT專案檔
5.將打光陣列之前的程式全部刪除
6.執行時可以出現角度值,並且可以印到output檔裡面
#include <GL/glut.h>
#include <stdio.h>///要檔案
FILE * fout = NULL;///宣告檔案的指標,一開始是空的
float angle=0, angle2=90, angle3=60;///準備三個角度的值
void keyboard(unsigned char key, int x, int y)
{
if(key=='s' || key=='S' || key=='w' || key=='W')
{
if(fout==NULL) fout = fopen("output.txt", "w+");
///上面這行,只有第一次按s鍵,只會開一次檔案,且才會還沒有設 定值,所以才fopen
///因為第二次按s鍵,fout名花有主,就不會再重複開檔案
printf("%.3f %.3f %.3f\n", angle, angle2, angle3);
fprintf(fout,"%.3f %.3f %.3f\n", angle, angle2, angle3);
}///3個角度的值,印到檔案去
}
7.補上display函式,刪除一些用不到的程式,增加glutKeyboardFunc(keyboard)
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
///先還沒做事
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(640,480);
glutInitWindowPosition(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
//glutReshapeFunc(resize);
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
//glutKeyboardFunc(key);
//glutIdleFunc(idle);
glClearColor(1,1,1,1);
//glEnable(GL_CULL_FACE);
//glCullFace(GL_BACK);
}
在小白視窗按下s鍵,就會在freeglut->bin裡面增加output.txt檔。
繼續在小白視窗按s或w,小黑是就會出現角度的值。
9.進到output.txt裡面會印入剛剛在小黑視窗出現的數值









沒有留言:
張貼留言