我一直在構建一個程序,將一個模型文件類型轉換爲wavefront obj,但是當我的面孔寫入該文件時遇到了問題。int在字符串流中使用時返回長數字?
if(!strcmp(line , "TEX:TOP"))
{
i++;
TEX_TOP << "f " << i << "/" << i << "/" << i << " ";
i++;
TEX_TOP << TEX_TOP << i << "/" << i << "/" << i << " ";
i++;
TEX_TOP << TEX_TOP << i << "/" << i << "/" << i << " ";
i++;
TEX_TOP << TEX_TOP << i << "/" << i << "/" << i << "\n";
}
的這部分代碼是應該輸出..
˚F1/1/1 2/2/2 3/3/3 4/4/4
但出來作爲..
˚F1971327331/1971327331/1971327331 0x28f5a81971327332 /1971327332分之19713273320x28f5a81971327333 /1971327333分之19713273330x28f5a81971327334 /1971327334分之1971327334
我搜索了幾個小時,但仍無法找到自動對焦九。
編輯:感謝LihO,我的問題是我把TEX_TOP fstream對象放在每行的開頭,假設我重新聲明它,並且int必須從0開始才能數起來。
i = 0;
if(!strcmp(line , "TEX:TOP"))
{
i++;
TEX_TOP << i << "/" << i << "/" << i << " ";
i++;
TEX_TOP << i << "/" << i << "/" << i << " ";
i++;
TEX_TOP << i << "/" << i << "/" << i << " ";
i++;
TEX_TOP << i << "/" << i << "/" << i << "\n";
}
您遺漏了很多重要的代碼,包括'i'的聲明和初始化以及'TEX_TOP'的定義。 –
這些仍然是'int's,不應該與'long'數據類型混淆。 – nhgrif
嗯,我認爲這是很好的,因爲我正在尋找stringstream中的int變量,因此不會出現這些部分。 – siba