Retourner au contenu associé (entrée de forum : manipuler un fichier binaire)
Posté par couriousous le 17 juin 2005 à 23:37. En réponse au message manipuler un fichier binaire. Évalué à 1.
#include <stdio.h> #include <string.h> static const char sequence[2] = {0xb1,0xb2}; int main(int argc, char ** argv) { int size; char buffer[256]; char * plop; FILE * coin; if(argc != 2 || (coin = fopen(argv[1],"r")) == NULL) return 1; while((size = getc(coin)) != EOF) { fread(buffer,1,size,coin); plop = memchr(buffer, sequence[0],size); if(plop == NULL || *(plop+1) != sequence[1]) { putchar(size); fwrite(buffer,1,size,stdout); continue; } size -= 2; memmove(plop,plop+2,size - ( buffer - plop ) -2); putchar(size); fwrite(buffer,1,size,stdout); } return 0; }
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# C rox
Posté par couriousous . En réponse au message manipuler un fichier binaire. Évalué à 1.
#include <stdio.h> #include <string.h> static const char sequence[2] = {0xb1,0xb2}; int main(int argc, char ** argv) { int size; char buffer[256]; char * plop; FILE * coin; if(argc != 2 || (coin = fopen(argv[1],"r")) == NULL) return 1; while((size = getc(coin)) != EOF) { fread(buffer,1,size,coin); plop = memchr(buffer, sequence[0],size); if(plop == NULL || *(plop+1) != sequence[1]) { putchar(size); fwrite(buffer,1,size,stdout); continue; } size -= 2; memmove(plop,plop+2,size - ( buffer - plop ) -2); putchar(size); fwrite(buffer,1,size,stdout); } return 0; }