ifstream 是有状态的对象,一个 ifstream *** 作完后一般处于非正常状态,内部的 eofbit 标记 failbit 标记等可能闷凯高已被设定。重新打开文件并不会清除这些标记,因此需要添加一步:
ifs.clear() // 去除 ifs 中的错误标记(如文件末尾标记或读取失败标记等)
然后孙李再打开蚂尺新文件即可
ifs.open("2.txt")
1、在电脑上新建一个文件夹,名称叫txt2array。然后,打开我们的devc++,渣宴返新建一祥谈个控制台c++项目,名称也叫txt2array。
2、将项目文件及源代码文件以及我们演示用的数据文件都存放在txt2array文件夹中。
3、向数据文件中写入一些演示用数据。
4、标准库的输入输出类的关系。如饥
5、第一个 *** 作读文件,我们可以使用ifstream或者fstream,前者提供了读取 *** 作,后者可以同时进行读写。
6、字符串类型转整型的类,主要是istringstream类。
方法和上面的差不多。代码如下:
#include<iostream>
#include<fstream.h>
#include<string>
//using std::cout
//using std::cin
using std::string
int main()
{
ifstream ifs("file1.text")
char p[100]={0}
char q[100]={0}
string str1,str2
fstream ofs("file2.text",ios::in|ios::out|ios::app)
for(int i=0!ifs.eof()i++)
{
ifs.getline(p,100)
str1=p
int m=0//定义m,如果m为1,则file1遍历file2时有相同腊姿轮轮信的
for(int j=0!ofs.eof()j++)
{
ofs.getline(q,100)
str2=q
if(str1==str2) //
m=1
}
ofs.clear() //清除eof标志位
if(0==m)/册段/m为0时向文件file2输入
ofs<<'\n'<<p
ofs.seekp(0,ios::beg)
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)