2012-12-13 49 views
0

我設法從源代碼編譯android並安裝在我的手機上。我應該從一開始就說我不是一個C++開發人員,但我希望能夠弄清楚如何將變量中保存的數據輸出到文件中。輸出到Android的c + +源文件

後有點谷歌搜索,我想出了下面的代碼:

#include <iostream> 
#include <fstream> 
using namespace std; 

ofstream myfile; 
myfile.open ("/data/wav.raw"); 
myfile < mMixBuffer; 
myfile.close(); 

frameworks/base/services/audioflinger/AudioFlinger.cpp: In member function 'virtual bool android::AudioFlinger::MixerThread::threadLoop()': 
frameworks/base/services/audioflinger/AudioFlinger.cpp:1769: error: 'ofstream' was not declared in this scope 
frameworks/base/services/audioflinger/AudioFlinger.cpp:1769: error: expected ';' before 'myfile' 
frameworks/base/services/audioflinger/AudioFlinger.cpp:1770: error: 'myfile' was not declared in this scope 

在此之後沒有工作,我想這再次給了編譯錯誤:

int fd; 
fd = ::open("/data/wav.raw",O_WRONLY | O_APPEND); 
::write(fd,mMixBuffer,minBufferSize); 
::close(fd); 

frameworks/base/services/audioflinger/AudioFlinger.cpp: In member function 'virtual bool android::AudioFlinger::MixerThread::threadLoop()': 
frameworks/base/services/audioflinger/AudioFlinger.cpp:1770: error: '::open' has not been declared 
frameworks/base/services/audioflinger/AudioFlinger.cpp:1770: error: 'O_WRONLY' was not declared in this scope 
frameworks/base/services/audioflinger/AudioFlinger.cpp:1770: error: 'O_APPEND' was not declared in this scope 

如果它不明朗上面我試圖將大小爲minBufferSize的變量mMixBuffer的內容附加到文件/data/wav.raw。有沒有人有任何想法我可以做到這一點?

+0

當您收到編譯錯誤時,總是會有所幫助,以顯示這些錯誤實際上是什麼。看起來你可能不會將這些代碼放入任何函數中,但很難確定。 –

+0

好的,對不起 - 我認爲這可能代碼會非常不正確,以至於編譯錯誤會讓帖子混亂而不是幫助。我現在將添加它們。 – James

+0

你確定你有第一個代碼示例的'#include ',第二個'#include '? –

回答

1

/data /目錄不能被修改。你將不會擁有相同的權限。試試/ mnt/sdcard(或)/ data/data /。

+0

謝謝。我前幾天意識到這一點,並嘗試/ SD卡,但沒有奏效 - 我還沒有看錯誤代碼。我會給/ mnt/sdcard一個去 – James