Açık ve hazır bir dosya akışım var.Bir dosyada bir bayt değiştirme C
Akıştaki tek bir Byte'a, değişiklik dosyanın üzerine yansıtılacak şekilde nasıl erişir ve değiştirir?
Herhangi bir öneriniz var mı?
Açık ve hazır bir dosya akışım var.Bir dosyada bir bayt değiştirme C
Akıştaki tek bir Byte'a, değişiklik dosyanın üzerine yansıtılacak şekilde nasıl erişir ve değiştirir?
Herhangi bir öneriniz var mı?
#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) gereklidir. fclose (NULL) UB'yi çağırır. – dirkgently
fwrite ("x", 1, 1, f); Bu, "x" dizesinin adresinin ilk baytını yazmaz mı? –
Hayır, yok - beni yok sayıyorum –
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" dosyayı kırpıyor. "Rb" ye ihtiyacın var. –
sizeof (char) == 1, tanım olarak. – dirkgently
Herkes haklı :) Uzun süre yok 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 */
}
Metin veya ikili? – dirkgently