私はファイルストリームを開いて準備ができています。Cのファイルの1バイトを変更する
変更がファイルに反映されるようにストリーム内の1つのバイトにアクセスして変更するにはどうすればよいですか?
提案がありますか?
私はファイルストリームを開いて準備ができています。Cのファイルの1バイトを変更する
変更がファイルに反映されるようにストリーム内の1つのバイトにアクセスして変更するにはどうすればよいですか?
提案がありますか?
#include "stdio.h"
int main(void)
{
FILE* f = fopen("so-data.dat", "r+b"); // Error checking omitted
fseek(f, 5, SEEK_SET);
fwrite("x", 1, 1, f);
fclose(f);
}
A(f!= NULL)が必要です。 fclose(NULL)はUBを呼び出します。 – dirkgently
fwrite( "x"、1、1、f); 文字列 "x"のアドレスの最初のバイトを書き込みませんか? –
いいえ、それは私を無視しません:-) –
FILE* fileHandle = fopen("filename", "r+b"); // r+ if you need char mode
fseek(fileHandle, position_of_byte, SEEK_SET);
fwrite("R" /* the value to replace with */, 1, 1, fileHandle);
"rw"はファイルを切り捨てます。あなたは "rb"が必要です。 –
sizeof(char)== 1、定義による。 – dirkgently
誰もが正しいです:)長い時間no C. –
#include <stdio.h> /* standard header, use the angle brackets */
int main(void)
{
char somechar = 'x'; /* one-byte data */
FILE* fp = fopen("so-data.txt", "r+");
if (fp) {
fseek(fp, 5, SEEK_SET);
fwrite(&somechar, 1, 1, fp);
fclose(fp);
}
return 0; /* if you are on non-C99 systems */
}
テキストまたはバイナリ? – dirkgently