2012-05-17 205 views
0

讀取內容爲「aaaaa」且char *文本返回「」的文件。ifstream返回空字符串?

執行該步驟後,顯示它在翻閱和結束之前會經歷一次fp >>文本行。該文件可以正確打開。有任何想法嗎?

char* Load_Wave_File(char *fname) 
{ 
    std::ifstream fp(fname,std::ios::binary); 

    std::streampos fsize=0; 
    fsize=fp.tellg(); 
    fp.seekg(0,std::ios::end); 
    fsize=fp.tellg()-fsize; 

    char* text; 
    text=new char[fsize]; 
    if(fp.is_open()) 
    { 
     while(!fp.eof()) 
     { 
      fp>>text; 
     } 
     fp.close(); 
     return text; 
    } 
    else 
    { 
     fp.close(); 
     return false; 
    } 
} 
+0

歡迎來到堆棧溢出!你是否試圖將文件的全部內容讀入字符數組?還有其他方法可以做到這一點。 http://stackoverflow.com/questions/116038/what-is-the-best-way-to-slurp-a-file-into-a-stdstring-in-c http://stackoverflow.com/questions/195323 /什麼是最優雅的方式來閱讀一個文本文件與c –

+0

啊,謝謝!完美的作品。 – ThatSnail

回答

3

您已經移動了讀指針過去與行的文件的末尾:

fp.seekg(0,std::ios::end); 

您需要重置回開頭。你可以這樣做:

fp.seekg(0,std::ios::beg); 
+0

改變,它的工作。儘管使用Rob的解決方案,但因爲它看起來像我使用的原始代碼需要永遠運行字符。謝謝您的幫助! – ThatSnail