C語言的文件操作 freopen


今天做USACO  用到了文件的操作。 之前做USACO只是格式化的些 寫  freopen("xxx.in","r",stdin)  和"freopen("xxx.out","w",stdout)"  

百度百科上是這么介紹的:

    函數名: freopen

  功 能: 替換一個流,或者說重新分配文件指針,實現重定向。如果stream流已經打開,則先關閉該流。如果該流已經定向,則freopen將會清除該定向。此函數一般用於將一個指定的文件打開一個預定義的流:標准輸入、標准輸出或者標准出錯。
  用 法: FILE *freopen(const char *filename,const char *type, FILE *stream);
    頭文件: stdio.h

  

例1:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    if(freopen("file.txt","w",stdout)==NULL)
        fprintf(stderr,"error\n");
    printf("This is in the file\n");      //這句話會在file.txt中顯示。
    fclose(stdout);               //使用fclose()函數就可以把緩沖區內最后剩余的數據輸出到磁盤文件中,並釋放文件指針和有關的緩沖區。
    return 0;
}

  

例2:

//首先在同路徑下創建一個in.txt文本文檔寫入若干數字
#include <stdio.h>
#include <stdlib.h>

int main()
{
    freopen("in.txt","r",stdin);     //從in.txt 中讀入數據
    freopen("out.txt","w",stdout);  // 將最后數據寫入out.txt中
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF)     //數據是從in.txt中輸入的
        printf("%d\n",a+b);             //寫入out.txt中
    fclose(stdin);
    fclose(stdout);
    return 0;
}

 freopen("CON","w",stdout)  表示在控制台窗口上寫入數據;

例3:

  

#include <stdio.h>
#include <stdlib.h>

int main()
{
   // FILE *stream;
    freopen("file1.txt","w",stdout);
    printf("this is in file1.txt");      // 這句話在file1.txt中顯示
    freopen("CON","w",stdout);
    printf("And this is in command.\n");    //這句話在控制台上顯示
    return 0;
}

  例5:  關於fread   可以通過下面的程序,一看就知道什么意思了

  

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main()
 5 {
 6     FILE *stream
 7     char s[102400]="";
 8     if((stream=freopen("file.txt","r",stdin))==null)
 9         exit(-1);
10     fread(s,1,1024,stdin);    // 讀取file.txt中1到1024位,放入s中 ,我是這么理解的
11     printf("%s\n",s);
12     return 0;
13 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM