您的位置:首页 > 编程语言 > C语言/C++

C++引入外部txt文件内容的方法

2016-10-09 10:28 771 查看
1.引入头文件fstream

2.定义对象如果是读入应该用 ifstream类魔板,如果是往里面写应为ofream;int  out

3.实例化出来一个ifstream 的对象,对象.open(“”,)第一个参数写文件打开的位置,第二个写打开的方式例如读入用ios::in//int out stream

4.声明一个字符指针数组,数组中存每一行的裁剪的每一个字符串

5.声明一个字符数组用来存每一行的字符串内容,注意:内存应该足够大

6.!对象.eof()函数只要文件没有读取结束,返回布尔值 //end of file

7.对象.is_open()返回一个布尔值,用来判断文件是否打开成功。

8.对象.getline()函数得到每一行的内容

9.在使用strtok字符串裁剪函数,详情参见字符串函数strtok的用法

10.最后对象.close()关闭文件读取。

11.代码如下:

#include <iostream>

#include<fstream>

#include<string>

using namespace std;

//读取外部文件(数据外部化:txt文档/xml文件)

void main()

{
//----------C++读取外部txt文件内容的方法-------------
ifstream ReadFile;// in  file  stream 文件输入流类对象
ReadFile.open("data.txt",ios::in);//打开文件,打开哪个文件,打开方式 in out stream

int id = 0 ;
// 物品的ID
string name = "";// 物品的名字
int BuyPrice = 0;// 物品的买入价格
int SellPrice = 0;// 物品的卖出价格
int attribute = 0;// 物品的属性

char * pStr[5] = {};//字符指针数组 用来存入每行的n个字符串

if( ReadFile.is_open() )//判断文件打开是否成功
{
cout<<"文件成功打开......"<<endl;
char Content[256] = {};//用来存储从文件中读取到的数据  整行的内容
while ( !ReadFile.eof() ) //只要文件没有读取结束  end of file
{
ReadFile.getline(Content, 256);//获取每行的内容,存储位置,数据个数

int index = 0 ;//指针数组的下标

/*
strtok:裁剪字符串:将参数字符串以" "分割
*/
char * pTemp = strtok(Content," ");//第一次进来就是第一个字符串
while(pTemp)
{
pStr[index] = pTemp;
pTemp = strtok(NULL," ");
++index;
}

 
//----------转换字符串成为数据-----------
id = atoi(pStr[0]);// ascii to int
name = pStr[1];
BuyPrice  = atoi(pStr[2]);
SellPrice = atoi(pStr[3]);
attribute = atoi(pStr[4]);

//----------根据ID号判断道具的类型-----------
cout<<id<<endl;
cout<<name.c_str()<<endl;
cout<<BuyPrice <<endl;
cout<<SellPrice<<endl;
cout<<attribute<<endl;
}
}
else
cout<<"文件打开失败"<<endl;

ReadFile.close();

system("pause");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: