2013-03-10 60 views
1

所以,我使用https://stackoverflow.com/a/298713/1472828把參數「hands.txt」時讀取(我agrv [1],這是我想打開一個文件)在我的命令參數。我已經嘗試過hands.txt和「hands.txt」,他們都沒有工作。文件不能使用Visual Studio 2010調試器

int FileParsing(vector<Card> & v, char * FileName) { 
    ifstream ifs; 
    ifs.open(FileName); 
    if (!ifs.is_open()){ 
     cout << "file cannot be opened." << endl; 
    } else { 

所以我使用調試器逐句通過我公司主營:

int main(int argc, char * argv[]){ 
    if (argc !=2){ 
     //ErrorMessage(); 
    } else { 
     ... 

調試器告訴我,我的argc是2,這是對的,但爲什麼每次調試剛剛進入

時間
cout << "file cannot be opened." << endl; 

這只是意味着該說法未能在看完

ifstream ifs; 
ifs.open(FileName); 

有什麼我錯過了,或者我以錯誤的方式通過了論點?

p.s.文本文件在cmd中完美讀取,所以它不是代碼問題。

+4

瘋狂的想法:既然你要發送的一切* *,但對'的argv [1]''到cout',也許讓在樂趣也加入進來。至少你知道你有正確的論點。該參數從項目的調試器配置頁面中程序參數行的IDE傳遞到程序。此外,您應該知道** VStudio默認從項目文件(.vcxproj)所在的同一文件夾運行程序,除非您更改它; *不是*生成後.exe所在的文件夾。** – WhozCraig 2013-03-10 00:55:58

+0

謝謝!謝謝,這解決了問題! – HoKy22 2013-03-10 01:02:16

+0

@WhozCraig你應該發佈作爲答案 – JaredPar 2013-03-10 01:03:58

回答

4

上心從@WhozCraig,在cmd中運行程序時,該文本文件調試目錄之下。但是,如果使用調試器運行它,則必須將該文本文件與其他cpp和h文件放在同一個目錄中。