ねえ。 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" saveプログラムを防ぐことができますか?
EDIT2:あなたはsecondbufferをゼロ、終了する必要が
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