这个程序编译未报错,但运行时显示如下内容
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
异常返回值为3
代码如下
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char* argv[])
{
string s = argv[1];char c;
if(s.substr(s.size() - 3, s.size()) == ".ed")
{
s = s.substr(0, s.size() - 3);
ifstream i(argv[1], ios::binary);
ofstream o(s.c_str(), ios::out);
while(i>>c) o<<char(c - 1);
}
else
{
s = s + ".ed";
ifstream i(argv[1], ios::in);
ofstream o(s.c_str(), ios::binary);
while(i>>c) o<<char(c + 1);
}
return 0;
}