【问题标题】:File cannot be read in when using Visual Studio 2010 Debugger使用 Visual Studio 2010 调试器时无法读取文件
【发布时间】: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


【解决方案1】:

从@WhozCraig 得到这个想法,在 cmd 中运行程序时,文本文件放在调试目录下。但是如果你使用调试器运行它,你必须将文本文件与其他 cpp 和 h 文件放在同一目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多