zoukankan      html  css  js  c++  java
  • 【415】C语言文件读写

    A program can open and close, and read from, and write to, a file that is defined by the user

    This is generally done when you have

    • large volumes of stored data, or
    • complex data (such as structs) or
    • non-printable data

    These don't happen often. Nevertheless, for the sake of completeness, here is a program that

    • reads a number from a file input.txt

    • writes the count from 1 to that number to the file output.txt

      • it is user-friendly :) : it tells the user that an output file has been created

    // files.c
    // read a number 'num' from a file input.txt
    // write a count from 1 to 'num' to the file OUT
    
    #define IN  "input.txt"
    #define OUT "output.txt"
    
    #include <stdio.h>
    #include <stdlib.h>
    
    #define NUMDIG 6 // size of numerical strings that are output
    
    int main(void) {
       FILE *fpi, *fpo; // these are file pointers
       char s[NUMDIG];
    
       fpi = fopen(IN, "r");
       if (fpi == NULL) { // an important check
           fprintf(stderr, "Can't open %s
    ", IN);
           return EXIT_FAILURE;
       }
       else {
           int num;
           if (fscanf(fpi, "%d", &num) != 1) { // an important check
               fprintf(stderr, "No number found in %s
    ", IN);
               return EXIT_FAILURE;
           }
           else {
               fclose(fpi); // don't need the input file anymore
               fpo = fopen(OUT, "w");
               if (fpo == NULL) { // an important check
                   fprintf(stderr, "Can't create %s!
    ", OUT);
                   return EXIT_FAILURE;
               }
               else { // got input and got an output file
                   fprintf(fpo, "%s", "Counts
    ");
                   for (int i=1; i<=num; i++) {
                       sprintf(s, "%d", i);
                       fprintf(fpo, "%s
    ", s);
                   }
                   fclose(fpo);
                   printf("file %s created
    ", OUT);
                   return EXIT_SUCCESS;
               }
           }
       }
    }
    

    input.txt

    10
    

    output.txt

    prompt$ dcc files.c
    prompt$ ./a.out
    file output.txt created
    prompt$ more output.txt
    Counts
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
  • 相关阅读:
    Lexical Sign Sequence
    (UPCOJ暑期训练)Tally Counters
    (2019hdu多校第十场) Welcome Party
    (2019hdu多校第十场1003) Valentine's Day
    更新,线段树模板(支持相关基本操作)
    linux(deepin)下Clion的安装及环境配置
    2019牛客第7场——C(Governing sand)
    【数论】数论之旅:N!分解素因子及若干问题
    [二分]Kayaking Trip
    [数论之旅]数学定理
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/11083088.html
Copyright © 2011-2022 走看看