我剛剛開始學習OpenGL,但遇到了一個小問題。我寫了一個自定義函數來讀取文件中的着色器,在這裏它是。你可以看到,在將指針移動到文件尾部後,我使用is.tellg()來獲取文件的大小。然而,在一個簡單的着色器中,它顯示的數量超過實際的數量。 的#Version 150文本文件的長度
in vec4 pos;
void main()
{
gl_Position = pos;
}
在此,大小應爲66(I手動計數,我可能會脫被1或2個字符)。然而,它顯示爲73.我認爲\ n \ r被理解爲\ n可能與錯誤的字符數有關,但我不確定。
無論哪種方式,我的問題是,爲什麼我會得到錯誤的計數,以及如何正確地得到它。
注:我知道其他方法來計算文件的大小,或更好的是,直接讀取std :: string中的內容,然後將它們轉換爲char *,但我想知道什麼此代碼中的問題是,以及我如何解決它。
問題是在系統中的文本文件上使用二進制文件的功能,這些文件不相同。 – Deduplicator