注册 登录
编程论坛 C++教室

文件输入输出

万致远醉帥 发布于 2020-04-15 11:50, 2218 次点击
谁能教我文件输入输出的方法
9 回复
#2
雪影辰风2020-04-15 13:23
1.freopen
  重定向式文件读取,通过修改流来进行读入,比如说:
    freopen("test.txt","r",stdin);
  此时的所有标准输入函数统统由test.txt文件读入【文件读入格式如同手动输入到程序中】
2.fopen
  灵活性大,但是写法较为繁琐
程序代码:

    int a;
    FILE *in; //定义一个文件指针
    in=fopen("test.txt","r");  //用fopen打开指定文件,并返回文件指针
    fscanf(in,"%d",&a); //用fscanf进行读入,写出用fprintf

3.fstream
  文件输入输出流,代码量少
程序代码:

    int a;
    fstream file("test.txt"); //打开文件
    file>>a; //从文件读入a
    file<<a; //向文件写入a

#3
万致远醉帥2020-04-15 16:12
回复 2楼 雪影辰风
请问需要什么头文件吗?
#4
return_02020-04-16 14:07
二楼的方法。。。我不怎么看的懂,其实我们老师以前是这么给我说的,可以使用以下方法:
程序代码:

#include<iostream>
using namespace std;
int main(){
    freopen("in","文件名""r");//全局开启文件输入
    freopen("out","文件名","w");//全局开启文件输出
    ......
}
#5
return_02020-04-16 14:08
头文件iostream就行了
#6
万致远醉帥2020-04-16 16:32
试了一下好像不行,可以在讲具体一点吗?
#7
return_02020-04-16 19:05
回复 6楼 万致远醉帥
在main函数里嵌入上面的两句话
#8
雪影辰风2020-04-17 12:27
回复 4楼 return_0
你们老师绝对教错了。。。
freopen第一个参数是文件名,第二个是文件读取方式,第三个是流
其实就是修改一个流,把这个流比如说stdin默认是从键盘输入,改成从文件输入,如果要恢复的话需要重新打开标准控制台设备文件,只不过这个文件的名字与操作系统相关。。。

我还是建议用后边两种,但是去打NOI比赛的话,需要用freopen
#9
雪影辰风2020-04-17 12:30
回复 6楼 万致远醉帥
这么写的。。
freopen("带有拓展名的文件名","读入方式(一般用w写入或r读入)",stdin); //重定向stdin标准输入流
freopen("带有拓展名的文件名","读入方式(一般用w写入或r读入)",stdout); //重定向stdout标准输入流
读入方式的话,
w=write
r=read
#10
return_02020-04-20 10:06
回复 9楼 雪影辰风
对不起,c语言闲置久了,忘光了
笔记拿出来翻了翻,还真的是这样。
1