gpt4 book ai didi

c++ - 调试断言错误

转载 作者:行者123 更新时间:2023-11-28 04:00:31 24 4
gpt4 key购买 nike

我已经挠头好久了,当我第一次使用 cmd 进入 project\debug 文件夹然后在那里运行程序时,这段代码运行良好。然后我添加了 if(in) 和 else 部分然后它开始给我“调试断言失败”错误 mbstowcs.c

表达式 s != NULL

这对我来说没有任何意义......

我在cmd中使用了这个命令:prog.exe test.txt nuther.txt

这两个文件都存在于调试文件夹和主项目文件夹中..

有什么想法吗?

    int main(int argc, char **argv)
{
parse_opts(argc, argv); //parse the arguments

return 0;
}


void parse_opts(int argc, char **argv)
{
string compl_out;

if( argc > 1 )
{
for( int i = 1; i < argc; i++ )
{
if( argv[i][0] = '>' )
{
ofstream out_file(argv[i+1]);
out_file << compl_out;
out_file.close();
break;
}

ifstream in(argv[i]);
string buff;

if(in)
{
while(getline( in, buff ))
cout << buff << endl;

compl_out.append(buff);
}
else
{
cout << "Can't open file: " << argv[i]
<< ", file doesn't exist or is locked in use. " << endl;
}
}
}
else
{
usage();
}

}

最佳答案

第一印象:

if( argv[i][0] = '>' )

应该是:

if( argv[i][0] == '>' )

您正在分配而不是比较。

我认为您可能还希望将 compl_out.append 置于 while 循环内?实际上,它不会向该缓冲区附加任何内容:

while(getline( in, buff ))
{
cout << "buf" << buff << endl;
compl_out.append(buff);
}

关于c++ - 调试断言错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/947864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com