2014-02-18 87 views
-6

我試過使用在線轉換器,但它沒有解決。如何將此C++函數轉換爲c#?

C++函數如下。我希望它在C#中是等效的。

//! Save the SURF features to file 
void saveSurf(char *filename, vector<Ipoint> &ipts) 
{ 
    ofstream outfile(filename); 

    // output descriptor length 
    outfile << "64\n"; 
    outfile << ipts.size() << "\n"; 

    // create output line as: scale x y des 
    for(unsigned int i=0; i < ipts.size(); i++) 
    { 
    outfile << ipts.at(i).scale << " "; 
    outfile << ipts.at(i).x << " "; 
    outfile << ipts.at(i).y << " "; 
    outfile << ipts.at(i).orientation << " "; 
    outfile << ipts.at(i).laplacian << " "; 
    outfile << ipts.at(i).scale << " "; 
    for(int j=0; j<64; j++) 
     outfile << ipts.at(i).descriptor[j] << " "; 

    outfile << "\n"; 
    } 

    outfile.close(); 
} 

我覺得ofstream是streamwriter或者可能是filestream。

+0

彷彿我已經問這個問題犯了一些犯罪行爲在我看來。 Marius Bancila在6分鐘內回答了這個問題,我能夠在15分鐘內解決它。我真的相信沒有必要做這麼多的降薪活動,也沒有必要把它看成是脫離主題。這是一個涉及兩種不同語言的編程問題。 –

回答

1

使用TextWriter類。

using (StreamWriter writer = File.CreateText("file.txt")) 
{ 
    writer.WriteLine("64"); 
    // etc. 
} 

或者異步:

using (StreamWriter writer = File.CreateText("file.txt")) 
{ 
    await writer.WriteLineAsync("64"); 
    // etc. 
} 
+0

什麼是「outfile << ipts.Count <<」\ n「;」? –

+0

您可能會使用'List '而不是'std :: vector',這樣'WriteLine(list.Count)'。 –

+0

你在6分鐘內回答了我的問題。我在15分鐘內實施了您的解決方案。測試需要10分鐘。問題解決了。非常感謝你, –