📜  C 程序从文件中读取一定范围的字节并将其打印到控制台

📅  最后修改于: 2022-05-13 01:55:13.690000             🧑  作者: Mango

C 程序从文件中读取一定范围的字节并将其打印到控制台

给定一个文件F ,任务是编写 C 程序来打印给定文件中任意范围的字节并将其打印到控制台。

使用的功能:

  1. fopen() 创建新文件。文件以“a”“a+”“w”“w++”的属性打开
  2. fgetc ():从文件中读取字符。
  3. fclose():对于 c丢失文件。

方法:

  • 初始化一个文件指针,比如File *fptr1
  • 初始化一个数组来存储将从文件中读取的字节。
  • 使用函数fopen()作为fptr1 = fopen(argv[1], “r”)打开文件。
  • 迭代一个循环,直到给定的文件被读取和存储,字符在变量中被扫描,比如使用fgetc()函数的C。
  • 将上述步骤中提取的每个字符C存储到一个新字符串S 中,并使用printf()函数打印该字符串。
  • 完成上述步骤后,使用fclose()函数关闭文件。

下面是上述方法的实现:

C
// C program to read particular bytes
// from the existing file
#include 
#include 
  
// 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;
}


输出:

想要从精选的视频和练习题中学习,请查看C 基础到高级C 基础课程