2014-07-20 37 views
0

我已經寫了程序,其中我一個循環期間保存的圖像時,使用該命令如何在循環中使用變量字符串?

writeimagefile("f:\\chkng\\otp.bmp",0,0,scn,scn); 

該命令是從graphics.h,這在給定的位置寫入的圖像文件。我應該如何將每個循環的圖像保存爲不同的名稱?即otp1.bmp,otp2.bmp,otp3.bmp。

+0

你在用什麼語言? – Avery

+0

devC++中的C++語言。 – Bilal

+0

'writeimagefile'期待什麼參數?他們的類型究竟是什麼? – Avery

回答

1
for (int i = start; i != end; ++i) 
{ 
    char filename[100]; 
    sprintf(filename, "f:\\chkng\\otp%d.bmp", i); 
    writeimagefile(filename,0,0,scn,scn); 
} 
+0

請解釋sprintf的含義? 和sprintf以外的任何其他方式,因爲我有點熟悉sprintf。 – Bilal

+0

@Bilal,'sprintf'就像'printf'。 'printf'打印到終端/控制檯。 'sprintf'打印到一個字符串。在這種情況下,它會打印到'filename'。 –

+0

謝謝,我的知識++。 %d的含義是什麼? – Bilal

0

For循環適用於計算事物,並且在許多語言中,您顯示的示例可以通過將count連接到文件名字符串來完成。你可以試試下面的:

for (int count = startingNumber; count <= endingNumber; count++) 
{ 
    writeimagefile("f:\\chkng\\otp" + count + ".bmp",0,0,scn,scn); 
} 
+0

讓我們看看是否有用。 – Bilal

+0

類型'const char *'和'const char [5]'的無效操作數到二元運算符+' – Bilal

0

對於這一點,我假設你的循環是基於指數(從0計數到最大值)。我還假設你已經包含了string

int max = 1; //example 
for(int i=0;i<max;i++){ 
    std::string filename = "f:\\chkng\\otp" + i + ".bmp"; 
    writeimagefile(filename.c_str(),0,0,scn,scn); 
} 

說明:

什麼我在這裏做的是使用一個循環,建設有文件名的數字的字符串的要求,並在調用函數與c_str版本(你的函數想要什麼)我們剛建立的文件名。

+0

爲什麼不能使用 writeimagefile(filename,0,0,scn,scn); – Bilal

+0

@Bilal因爲你的函數需要一個'char *'類型的變量,而不是'string'。 'c_str()'函數允許更新的C++'string'類型與類似你的函數的代碼一起使用,它需要一個'char'數組 – Avery

相關問題