안녕하세요. ofstream을 사용하여 char을 파일에 쓰는 데 문제가 있습니다. 이것은 코드가 보이는 방식입니다 (어떻게 작동하는지 보여주기 위해 실제 코드가 아닙니다).파일에 문자 저장
char buffer[5001];
char secondbuffer[5001];
char temp;
ifstream in(Filename here);
int i = 0;
while(in.get(secondbuffer) && !in.eof[])
{
i++;
}
for(int j = 0; j < i; j++)
{
secondbuffer[j] = buffer[j];
}
ofstream fout(somefile);
fout << secondbuffer;
// end of program
문제는 첫 번째 파일 벌금의 문자를 읽이지만, 두 번째 파일에 기록 할 때, 그것하고 가정으로, 첫 번째 파일에서 모든 문자를 추가,하지만이없는 경우 더 많은 문자가 있으면 파일 끝에 "Ì"문자가 많이 추가됩니다.
FX :
파일 1 : ABC
파일 2 : abcÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ ...
가 어떻게 파일에 "I"저장 프로그램을 방지 할 수 있습니다?EDIT2 : 당신은 secondbuffer을 NULL로 종료 할 필요가
int i = 0;
lenghtofFile++;
while(fin.get(firstfileBuffer[i]) && !fin.eof())
{
i++;
lenghtofFile++;
}
firstfileBuffer[i] = '\0';
for(int j = 0; j < lenghtofFile; j++)
{
if(secondfileBuffer[j] != ' ' && secondfileBuffer[j] != '\0')
{
secondfileBuffer[j] = function(key, firstfileBuffer[j]);
}
}
secondfileBuffer[lenghtofFile]='\0';
fout << secondfileBuffer;
당신이 내 편집을 확인하시기 바랍니다 수 있습니까? 아직 문제가 있습니다. (코드가 매우 좋지만 프로그램이 잘 안된다는 것을 알고 있습니다. 이해해 주시기 바랍니다.) – Janman
문제는 jj = lengthoffile-1입니다. 너는 == 길이가 될 필요가있다. (사실, 당신은 이제'firstfileBuffer'를 null로 끝내기 때문에) 복사 루프 전에'lengthoffile ++; '을 할 수 있습니다. 이렇게하면 null이 복사됩니다. 그렇다면'jj'를 모두 제거 할 수 있습니다. – AShelly
편집 내용을 확인해 주시겠습니까? (: D) 나는 여전히 작동하지 않습니다. – Janman