(2)打开txt必须用到fstream库中的ifstream类和其open和close成员函数。
(3)文件读取后一定要记得关闭文件,即调用close函数
二、字符串的分离
1读取的txt中只有整形的情况(要读回的txt文件如上图中所示)
代码如下:
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
//如果字符串中都是整数
void stringTOnum1(string s, int* pdata)
{
bool temp=false; //读取一个数据标志位
int data=0; //分离的一个数据
int m=0; //数组索引值
for(int i=0;i<s.length();i++)
{
while((s[i]>='0')&&(s[i]<='9')) //当前字符是数据,并一直读后面的数据,只要遇到不是数字为止
{
temp=true; //读数据标志位置位
data*=10;
data+=(s[i]-'0'); //字符在系统以ASCII码存储,要得到其实际值必须减去‘0'的ASCII值
i++;
}
//刚读取了数据
if(temp) //判断是否完全读取一个数据
{
pdata[m]=data; //赋值
m++;
data=0;
temp=false; //标志位复位
}
}
}
int main()
{
int* pdata =new int[5];
string s;
//读取第一个txt文件
ifstream infile1;
infile1.open("1.txt");
while(getline(infile1, s))
{
stringTOnum1(s, pdata);
for(int i=0;i<5;i++)
cout << pdata[i] << " ";
cout << endl;
}
infile1.close();
cin.get();
return 0;
}
执行的结果如下:
顺利地读取了每行数据并分离出了整型数据保存在了数组中。











