2014-01-10 189 views
0

我對cpp仍然很缺乏經驗。將ostream重定向到輸出文件

我有我想從.cpp文件調用一個函數,下面是它的頭:

int wsq_encode(unsigned char* bufferRAW, int width, int height, char compressRate, std::ostream &streamWSQ); 

我需要寫打開萬噸的RAW圖像格式的編碼(bufferRAW)和壓縮他們根據這家公司的算法對.wsq進行處理,一直使用argv []使用寬度,高度和壓縮率參數。輸出文件應該轉到streamWSQ。

wsq_encode已關閉,我不會進入它。我無法將輸出文件傳遞給wsq_encode。我需要編寫的代碼非常簡單:

#include "../inc/libcorewsq.h" 
#include <fstream> 
#include <iostream> 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main (int argc, char **argv) { 
     unsigned char raw[20]; 
     strcpy ((char*)raw, argv[1]); 
     int width = atoi(argv[2]); 
     int height = atoi(argv[3]); 
     ostream arq; 
     arq.open ("out.wsq"); 
     wsq_encode (raw, width, height, 5, arq); 

     return 0; 
} 

我還在爲如何做到這一點做鬥爭。我需要在CentOS ssh shell中使用GCC 4.4.7進行編譯和運行。

+0

解釋你的「麻煩」。 –

+0

我需要調用的函數接受一個ostream參數來寫輸出。如果我嘗試限定std :: ostream或添加「using namespace std;」,錯誤消息 「對wsq_encode(unsigned char *,int,int,char,std :: basic_ostream >&)'「 隨之而來,即使有#include」../inc/libcorewsq.h「。 – user3182973

+0

'#include'是無關緊要的。您無法在函數的_definition_中鏈接。 –

回答

0

#include是無關緊要的:你沒有鏈接功能的定義。

1

嘗試使用std::ofstream,其中f用於文件。

開放std::ostream打開通用輸出流。