C++之简单文件的输入与输出

来源:互联网 发布:mysql中文参考手册 编辑:程序博客网 时间:2024/06/11 22:44

C++可以通过cincout来读取键盘的输入与输出,也可以从一个txt文件中读取输入与输出

这就要用到fstream中的ofstream类了

一、将数据写入文本文件

1、首先需要声明ofstream对象,这就根本声明基本类型变量类似

例如:ofstream outFile;

2、然后要将声明的ofstream对象与文件关联起来,可以使用open()方法

       outFile.open(“price.txt”);

如果关联的文件不存在的话,open()将会自动创建一个关联名字的文件,如果存在的话,

Open()会清除文件中的内容,然后将新的输入加入到文件中

3、使用完以后要用close()将其关闭,如果忘了关闭的话,程序在终止的时候会自动关闭

不过如果你在一个程序中同时进行输入输出的话,记得要关闭,不然将会无法输入

 

这样进行以后,就可以像使用cout那样使用它了,所有可以用于cout的操作都可以用于ofstream

对象

二、读取文本文件

读取文本文件流程大致与写入文本文件类似,这里就大概的说一下

1、声明ifstream对象

2、将对象与文件关联起来

3、使用完以后用close()关闭

Ifstream inFile;

InFile.open“price.txt”;

使用方法同cin

这里不同的是,必须要判断是否打开文件并读取成功,如果打开一个不存在的文件将会导致使用ifstream对象失败

这里可以使用is_open()来判断是否打开成功

If(!inFile.is_open())

{

Exit(EXIT_FAILURE); //退出程序

}

怎么判断读取是否到达结尾呢?

这就要用到eof()fail()

如果到达结尾eof()fail()将会返回true否则会返回false

fail()也可以用来检查类型不匹配

如果发生了类型不匹配,方法fail()会返回true否则返回false

 

good()方法将会在没有任何错误的情况下返回true,可以用来判断是否发生了意外的状况,比如文件受损什么的

下面是我做的一个例子

主要作用是先向文件中输入一些字符串,然后读取输入

#include "stdafx.h"

#include<iostream>

#include<fstream>

#include<cstdlib>

#include<string>

 

int main()

{  

using namespace std;

ofstream outFile;

outFile.open("fish.txt");

string str1;

getline(cin, str1);

outFile << str1;

outFile.close();

ifstream inFile;

inFile.open("fish.txt");

if (!inFile.is_open())   //没有成功打开时提示

{

cout << "Could not open the file\n";

cout << "Program terinatinf.\n";

exit(EXIT_FAILURE);

}

int count=0;

char wd;

inFile >> wd;

while (inFile.good()&&!inFile.fail())//没有错误和到达文件尾

{

++count;

inFile >> wd;

}

cout << count;

inFile.close();

 

    return 0;

}

0 0