2010-03-10 92 views
1

我目前正在開發一個應用程序,它從文本文件獲取輸入並相應地執行。概念是輸入文件將具有在此fomat從C++中的文件獲取輸入

A AND B 
     B OR C 

每一條線路將由空白空間被分隔和輸入必須從文本文件中截取並處理邏輯的信息。我使用TCPP編譯器,並且在閱讀輸入時遇到問題。請幫我這個問題...

+1

它會幫助,如果你將發佈什麼樣的代碼是你目前正在使用,或爲t他的硬件問題? – anijhaw 2010-03-10 02:39:48

+0

那麼你在閱讀輸入時面臨的問題是什麼? – stefanB 2010-03-10 02:41:02

+0

沒有..它不是一個硬件問題..我得到的錯誤是「錯誤讀取文件」,我也不知道如何從文件中獲得逐行輸入 – Greenhorn 2010-03-10 02:47:24

回答

3

讀取輸入在時間線通常與std::getline完成的,這樣的事情:

std::string line; 
std::ifstream infile("filename"); 

while (std::getline(line, infile)) 
    // show what we read 
    std::cout << line << "\n"; 

如果您遇到這樣的事情煩惱,你可能考慮尋找一本關於C++的(更好的)書,而不是你現在(希望)使用的書。在C++或焦炭

包括

或的#include,你可以使用fileobject.getline(中),(不檢查其正確的語法。)功能:

+0

THY你傑裏,它的工作:) – Greenhorn 2010-03-11 11:36:11

0

您使用HEADR文件如通過使用炭fileobject.get(CH)樣的功能

1

可以使用如下的通俗易懂:

BOOL ReadFile(CString filename) 
{ 
    BOOL bRead = TRUE; 

    std::ifstream m_strmFile; 
    m_strmFile.open(filename, std::ios::in); 

    char pszLine[256]; 
    memset(pszLine, 256, 0); 

    if (m_strmFile) 
    { 
     // Read whatever number of lines in your file 
     for (unsigned int i = 0; i < 5/*number of lines*/; i++) 
     m_strmFile.getline(pszLine, 256); 
     // Do whatever you want to do with your read lines here... 
    } 
    else bRead = FALSE; 

    return bRead; 
} 
+0

TCPP(Turbo C Plus Plus)中的以下符號:'BOOL','CString'?我相信這些都是微軟的條款。 – 2010-03-10 19:51:56

+0

@ Thomas 你是對的。這些條款來自MS VS.哪裏不對了? @ TCPP:請使用bool和const char *而不是BOOL和CString或typedef bool BOOL – 2010-03-13 17:53:18