2013-03-10 58 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文件放在同一个目录中。