【发布时间】:2013-03-10 00:54:05
【问题描述】:
所以,我使用https://stackoverflow.com/a/298713/1472828 将参数“hands.txt”(我的 agrv[1],这是我要打开的文件)放入我的命令参数中。 hands.txt 和“hands.txt”我都试过了,都不行。
int FileParsing(vector<Card> & v, char * FileName) {
ifstream ifs;
ifs.open(FileName);
if (!ifs.is_open()){
cout << "file cannot be opened." << endl;
} else {
所以我使用调试器来单步执行我的 main:
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完美读取的,所以不是代码的问题。
【问题讨论】:
-
疯狂的想法:既然您将所有的东西都发送但
argv[1]到cout,也许也让它加入乐趣。至少那时你知道你有正确的论点。参数从项目的调试器配置页面中的 Program Arguments 行从 IDE 传递给程序。此外,您应该知道 VStudio 默认从项目文件 (.vcxproj) 所在的同一文件夹中运行您的程序,除非您更改它; 不是构建后.exe所在的文件夹。 -
谢谢!!谢谢,问题解决了!!
-
@WhozCraig 您应该将其发布为答案
-
非常好,我相信您当时也找到了“启动”文件夹条目。很好。
-
@JaredPar 实际上是个骗子。我很确定,因为我知道在过去一个月左右的时间里我至少回答了两次。如果我能找到骗子,我会照此发布,我们可以关闭它。
标签: c++ visual-studio-2010 debugging