2010-02-17 86 views
1
int main(int argc, char *argv[]) 
{ 
    Move move; 
    ifstream inf("eof.txt"); 
    inf >> move; 
    return 0; 
} 

istream& operator>> (istream &is, Move &move) 
{ 
    is >> move.c; // c = char c[2]; 
    cout << move.c << endl; 
    return is; 
} 

eof.txt有2個字符的行,所以如果它有「9r」,「9r」將被存儲在移動的數據成員(爲了方便起見,我公開它)。爲了確保這個工作,我輸出移動的數據,並確定它的工作原理是否可以將數據類型視爲輸入流?

我想要做的是使用這個相同的運算符,而不是從一個文件或標準輸入獲取輸入,我將有一個datamember它擁有所需的輸入。因此,主要的是,如果我有一個帶有「1d」的char數組,我需要能夠使用相同的函數(不需要修改它)來做同樣的事情。

這可能嗎?任何幫助讚賞。

回答

2

您可以使用stringstream

#include <sstream> 

int main() { 
    char foo[] = "1d"; 
    std::stringstream ss(foo); 
    Move move; 
    ss >> move; 
    return 0; 
} 
+0

真棒,從來不知道這一點。謝謝。 – kevin 2010-02-17 04:26:05

相關問題