0
저는 처음에는 cmd를 사용하여 project \ debug 폴더에 들어가서 프로그램을 실행했을 때이 코드가 정상적으로 작동했습니다. 다음은 "디버그 선언이 실패한"저를주고 시작 (에서)과 다른 부분이라면 나는 추가 오류가디버그 어설 션 오류
표현들! = NULL
는 그냥 나에게 어떤 이해가되지 않습니다 mbstowcs.c ..
나는 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();
}
}
그래, 내가 바로 것을보고 .. LOL 김 실망이다 바보 같은 실수 .. –
좋은 물건을 ... 이유를 확실하지 주장을하고있다. 내가 뭔가를 놓치지 않았다면, 나는 그 프로그램이 주어진 params를 벗어나기 만하면 끝날 것이라고 기대할 것입니다. 비록 당신이 "blah.exe>"를 통과했다면 그것은 outstream out_file (argv [i + 1])에서 충돌 할 수 있습니다; 선. – RedBlueThing
일반적인 "속임수"는 오른쪽에 상수 표현을 쓰는 것입니다. 습관을 만들면 문제가 생길 수 있습니다. 예 : ('>'= arg [i] [0]) 컴파일러 오류를 줄 경우 if ('>'== arg [i] [0]) 괜찮습니다. –