Skip to content

8.3 文件操作freopen

发布时间:

freopen

命令格式: FILE * freopen ( const char * filename, const char * mode, FILE * stream );

  • 引用 #include <cstdio>
  • filename: 要打开的文件名
  • mode: 文件打开的模式(r/w)
  • stream: 文件指针,通常使用标准流文件(stdin/stdout/stderr)stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认

基础用例1

js
#include <cstdio>   //使用freopen语句,须调用cstdio库
// #include <iostream>//cin  cout 须调用 iostream库
using namespace std;
int main() {
    freopen("cstdio_in.txt", "r", stdin);    // 定义输入文件名
    freopen("cstdio_out.txt", "w", stdout);  // 定义输出文件名
    int temp ;
    scanf("%d", &temp); //转为读取文件
    printf("%d\n", temp);//转为输出到文件
    // cin>>temp;
    // cout<<temp<<endl;
    fclose(stdin);
    fclose(stdout);  // 关闭文件,可省略
    return 0;
}


   

in.txt

js
1
2
3
   

out.txt

js
1
2
3
   

提高用例2:

js
#include <cstdio>
int main() {
    freopen("in.txt", "r", stdin);    // 定义输入文件名
    freopen("out.txt", "w", stdout);  // 定义输出文件名
    int temp, sum = 0;
    //(cin>>temp)从输入文件中读入数据,在C++中非0为真
    while (scanf("%d", &temp) == 1){
        sum = sum + temp;
    }
    printf("%d\n", sum);  // cout<<sum<<endl;
    fclose(stdin);
    fclose(stdout);  // 关闭文件,可省略
    return 0;
}

   

in.txt文件内容

js
1 2 3 4 5
   

运行结果 out.txt文件内容为

js
15