Dado un archivo F , la tarea es escribir un programa C para imprimir cualquier rango de bytes del archivo dado e imprimirlo en una consola.
Funciones utilizadas:
- fopen() : El archivo como “a” o “a+” o “w” o “w++” .
Acercarse:
- Inicialice un puntero de archivo , diga Archivo *fptr1 .
- Inicialice una array para almacenar los bytes que se leerán del archivo.
- Abra el archivo usando la función fopen() como fptr1 = fopen(argv[1], “r”) .
- Itere un ciclo hasta que el archivo dado se lea y almacene, los caracteres se escanean en la variable, digamos C usando la función fgetc() .
- Almacene cada carácter C extraído en el paso anterior, en una nueva string S e imprima esa string usando la función printf() .
- Después de completar los pasos anteriores, cierre el archivo con la función fclose() .
A continuación se muestra la implementación del enfoque anterior:
C
// C program to read particular bytes // from the existing file #include <stdio.h> #include <stdlib.h> // Maximum range of bytes #define MAX 1000 // Filename given as the command // line argument int main(int argc, char* argv[]) { // Pointer to the file to be // read from FILE* fptr1; char c; // Stores the bytes to read char str[MAX]; int i = 0, j, from, to; // If the file exists and has // read permission fptr1 = fopen(argv[1], "r"); if (fptr1 == NULL) { return 1; } // Input from the user range of // bytes inclusive of from and to printf("Read bytes from: "); scanf("%d", &from); printf("Read bytes upto: "); scanf("%d", &to); // Loop to read required byte // of file for (i = 0, j = 0; i <= to && c != EOF; i++) { // Skip the bytes not required if (i >= from) { str[j] = c; j++; } // Get the characters c = fgetc(fptr1); } // Print the bytes as string printf("%s", str); // Close the file fclose(fptr1); return 0; }
Producción: