코드 조각이 잘못 작동하고 있으며 어떻게 수행하고 있는지 잘 모릅니다.STRCAT은 동시에 두 개의 변수를 변경합니다.
내가하고 싶은 것입니다 :
- 는 현재에서 디렉토리 이름
path
하고 파일 이름filename
- 복사 다른 변수
caminho
- 복사 이러한 두 파일을 수신하는 기능을 가지고 디렉토리를받은 디렉토리로 이동하십시오.
내 문제가 코드 내 기능은 다음과 같습니다 어떤이 코드가 할 일은이 같은 simething 인쇄가
void fileTransfer(const char* filename, const char* path, bool ts)
{
std::cout << filename << std::endl;
char *caminho;
caminho[0] = '\0';
std::cout << "0 " << caminho << ' ' << filename << std::endl;
strcat(caminho, path);
std::cout << "1 " << caminho << ' ' << filename << std::endl;
strcat(caminho, "\\");
std::cout << "2 " << caminho << ' ' << filename << std::endl;
strcat(caminho, filename);
std::cout << "3 " << caminho << ' ' << filename << std::endl;
//does the rest
}
:
:file.txt
0 file.txt
C:\Users\Username file.txt
C:\Users\Username\ file.txt
C:\Users\Username\file.txt file.txt
그러나이 코드가 실제로 인쇄
이있다file.txt
0
C:\Users\Username C:\Users\Username
C:\Users\Username\ C:\Users\Username\
C:\Users\Username\C:\Users\Username\C C:\Users\Username\C:\Users\Username\C
또한이 모든 것 전에 strcat
filename
을 인쇄했는데 정확합니다. 누구든지이 코드를 잘못 볼 수 있습니까?
흠, 나는이 일을 시도했지만 잘못했다.'size_t' (한동안 C/C++로 코딩하지 않았습니다)를 사용하지 않았습니다. 그리고 함수의 마지막에'malloc '에 의해 할당 된 메모리를 지울 필요가 없을까요? – Comum
@Comum 올바른 기능이 어떻게 보이는지 보여주었습니다. 그것은 추가가 필요없는 올바른 코드입니다. –
그래, 그것이 트릭을 해야하는 것처럼 보입니다. 적절한 결과를 얻을 수 있는지 확인하기 위해 구현 중입니다. 건배!!! – Comum