2013-02-17 30 views
0

我最近開始在C++中試用winapi。到目前爲止很好。C++ Winapi。從文件中讀取第一行,在文本框中顯示

但是,我找到一種方法來讀取文件的第一行,並將其顯示在文本框中,但確實存在問題。

經過一番谷歌搜索似乎有人建議使用winapis函數,而其他人則認爲使用fstream更簡單。我確實採用了fstream的方式,但是我遇到了一些麻煩,可能沒有什麼困難,但是我找不到答案!

這是我的代碼:

string line; 
ifstream filen ("tid.txt"); 
if (filen.is_open()) 
    { 

    getline (filen,line); 
    cout << line << endl; 
    filen.close(); 
    } 

    SetDlgItemText(hwnd, IDC_MAIN_EDIT, line); 

這給我從編譯器的這個問題:轉換

Cannot convert `std::string' to `const CHAR*' 

極品somekind的在這裏,但不知道是什麼。

您認爲如何?

+0

可能重複[如何轉換的std :: string到LPCSTR?](http://stackoverflow.com/questions/1200188/how-to-convert-stdstring-to -lpcstr) – WhozCraig 2013-02-17 22:36:40

回答

1

試試這個:

SetDlgItemText(hwnd, IDC_MAIN_EDIT, line.c_str()); 
+1

或試試這個SetDlgItemTextA(hwnd,IDC_MAIN_EDIT,line.c_str()); – Unick 2013-02-17 21:54:31

+0

哇!感謝您的快速回答!它確實工作。你能解釋一下這個區別嗎?只是所以我明白:) – 540 2013-02-17 21:58:35

+0

c_str()方法返回一個常數指針,該指針包含零終止的字符序列。也就是說,你得到由std :: string對象包裝的C字符串。 – kol 2013-02-17 22:03:20