fstream的使用方法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:
1、插入器(<<)
向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<’\n’;就表示把字符串"Write Stdout"和换行字符(’\n’)输出到标准输出流。
2、析取器(>>)
从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。
在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。
一、打开文件
在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是:
void open(const char* filename,int mode,int access);
参数:
filename:要打开的文件名
mode:要打开文件的方式
access:打开文件的属性
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:
ios::app: //以追加的方式打开文件
ios::ate://文件打开后定位到文件尾,ios:app就包含有此属性ios::binary://以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in://文件以输入方式打开(文件数据输入到内存)
ios::out://文件以输出方式打开(内存数据输出到文件)
ios::nocreate://不建立文件,所以文件不存在时打开失败
ios::noreplace://不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc://如果文件存在,把文件长度设为0
可以用“或”把以上属性连接起来,如ios::out|ios::binary
打开文件的属性取值是:
0:普通文件,打开访问
1:只读文件
2:隐含文件
4:系统文件
可以用“或”或者“+”把以上属性连接起来,如3或1|2就是以只读和隐含属性打开文件。
例如:以二进制输入方式打开文件c:\config.sys
fstream file1;
file1.open("c:\\config.sys",ios::binary|ios::in,0);
如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:
file1.open("c:\\config.sys"); <=>
file1.open("c:\\config.sys",ios::in|ios::out,0);
另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了:
fstream file1("c:\\config.sys");
特别提出的是,fstream有两个子类:ifstream(input file stream)和
ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。
ifstream file2("c:\\pdos.def");//以输入方式打开文件
ofstream file3("c:\\x.123");//以输出方式打开文件
所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定
二、关闭文件
打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作,如:file1.close();就把file1相连的文件关闭。
三、读写文件
读写文件分为文本文件和二进制文件的读取,对于文本文件的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要复杂些,下要就详细的介绍这两种方式
1、文本文件的读写
文本文件的读写很简单:用插入器(<<)向文件输出;用析取器(>>)从文件输入。假设file1是以输入方式打开,file2以输出打开。示例如下:
file2<<"I Love You";//向文件写入字符串"I Love You"
int i;
file1>>i;//从文件输入一个整数值。
这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些
操纵符功能输入/输出
dec 格式化为十进制数值数据输入和输出
endl 输出一个换行符并刷新此流输出
ends 输出一个空字符输出
hex 格式化为十六进制数值数据输入和输出
oct 格式化为八进制数值数据输入和输出
setpxecision(int p) 设置浮点数的精度位数输出
比如要把123当作十六进制输出:
file1< 要把3.1415926以5位精度输出: file1< 2、二进制文件的读写 ①put() put()函数向流写入一个字符,其原型是ofstream &put(char ch),使用也比较简单,如file1.put(’c’);就是向流写一个字符’c’。 ②get() get()函数比较灵活,有3种常用的重载形式: 一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。 另一种重载形式的原型是: int get();这种形式是从流中返回一个字符,如果到达文件尾,返回EOF,如x=file2.get();和上例功能是一样的。 还有一种形式的原型是:ifstream &get(char *buf,int num,char delim=’\n’);这种形式把字符读入由 buf 指向的数组,直到读入了 num 个字符或遇到了由 delim 指定的字符,如果没使用 delim 这个参数,将使用缺省值换行符’\n’。例如: file2.get(str1,127,’A’); //从文件中读取字符到字符串str1,当遇到字符’A’或读取了127个字符时终止。 ③读写数据块 要读写二进制数据块,使用成员函数read()和write()成员函数,它们原型下: read(unsigned char *buf,int num); write(const unsigned char *buf,int num); read()从文件中读取 num 个字符到 buf 指向的缓存中,如果在还未读入 num 个字符时就到了文件尾,可以用成员函数 int gcount();来取得实际读取的字符数;而 write() 从buf 指向的缓存写 num 个字符到文件中,值得注意的是缓存的类型是 unsigned char *,有时可能需要类型转换。 例: unsigned char str1[]="I Love You"; int n[5]; ifstream in("xxx.xxx"); ofstream out("yyy.yyy"); out.write(str1,strlen(str1));//把字符串str1全部写到yyy.yyy中 in.read((unsigned char*)n,sizeof(n));//从xxx.xxx中读取指定个整数,注意类型转换 in.close(); out.close(); 四、检测EOF 成员函数eof()用来检测是否到达文件尾,如果到达文件尾返回非0值,否则返回0。原型是int eof(); 例:if(in.eof()) ShowMessage("已经到达文件尾!"); 五、文件定位 和C的文件操作方式不同的是,C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C++的文件定位分为读位置和写位置的定位,对应的成员函数是seekg()和seekp()。seekg()是设置读位置,seekp是设置写位置。它们最通用的形式如下: istream &seekg(streamoff offset,seek_dir origin); ostream &seekp(streamoff offset,seek_dir origin); streamoff定义于 iostream.h 中,定义有偏移量 offset 所能取得的最大值,seek_dir 表示移动的基准位置,是一个有以下值的枚举: ios::beg:文件开头 ios::cur:文件当前位置 ios::end:文件结尾 这两个函数一般用于二进制文件,因为文本文件会因为系统对字符的解释而可能与预想的值不同。例: file1.seekg(1234,ios::cur); //把文件的读指针从当前位置向后移1234个字节 file2.seekp(1234,ios::beg); //把文件的写指针从文件开头向后移1234个字节 fstream的用法 开一个文件 fstream f; f.open("1.txt", ios::in | ios::binary); if (!f.is_open()) // 检查文件是否成功打开 cout << "cannot open file." << endl; ios::in与ios::bianry均为int型,定义文件打开的方式。 ios::in -- 打开文件用于读。 ios::out -- 打开文件用于写,如果文件不存在,则新建一个;存在则清空其内容。 ios::binary -- 以二进制bit流方式进行读写,默认是ios::text,但最好指定这种读写方式,即使要读写的是文本。因为在ios::text模式下,在写入时’\ n’字符将转换成两个字符:回车+换行(HEX: 0D 0A) 写入,读入时作逆转换,这容易引起不必要的麻烦。ios::app -- 打开文件在文件尾进行写入,即使使用了seekp改变了写入位置,仍将在文件尾写入。 ios::ate -- 打开文件在文件尾进行写入,但seekp有效。 读写位置的改变 f.seekg(0, ios::beg); // 改变读入位置 g mean Get f.seekp(0, ios::end); // 改变写入位置 p mean Put 第一个参数是偏移量offset(long),第二个参数是offset相对的位置,三个值: ios::beg -- 文件头 ios::end -- 文件尾 ios::cur -- 当前位置 文件读写 char s[50]; f.read(s, 49); s[50] = ’\0’; // 注意要自己加上字符串结束符 char *s = "hello"; f.write(s, strlen(s)); 补充记得读写完成后用f.close()关闭文件。 例子下面的程序用于删除带有行号的源程序中的行号。 #include #include using namespace std; //定义要删除的行号格式,下面定义的是型如: #0001 的行号 const int LINE_NUM_LENGTH = 5; const char LINE_NUM_START = ’#’; int main(int argc, char *argv[]) { fstream f; char *s = NULL; int n; for (int i = 1; i < argc; i++) { cout << "Processing file " << argv[i] << "......"; f.open(argv[i], ios::in | ios::binary); if (!f.is_open()){ cout << "CANNOT OPEN"<< endl; continue; } f.seekg(0, ios::end); n = f.tellg(); // 文件大小 s = new char[n+1]; f.seekg(0, ios::beg); f.read(s, n); s[n] = ’\0’; f.close(); // 采用一种简单的判断,遇到LINE_NUM_START后接一个数字, // 则认为它是一个行号. for (int j = 0; j < n; j++) { if (s[j] == LINE_NUM_START && (s[j+1] >= ’0’ && s[j+1] <= ’9’)) { for (int k = j; k < j + LINE_NUM_LENGTH; k++) s[k] = ’ ’; } } f.open(argv[i], ios::out | ios::binary); if (!f.is_open()) { cout << "CANNOT OPEN" << endl; delete[] s; continue; } f.write(s, n); f.close(); cout << "OK" << endl; delete[] s; } return0; 一. 简介 new有三种使用方式:plain new,nothrow new和placement new。 (1)plain new顾名思义就是普通的new,就是我们惯常使用的new。在C++中是这样定义的: void* operator new(std::size_t) throw(std::bad_alloc); void operator delete(void *) throw(); 提示:plain new在分配失败的情况下,抛出异常std::bad_alloc而不是返回NULL,因此通过判断返回值是否为NULL是徒劳的。 (2)nothrow new是不抛出异常的运算符new的形式。nothrow new在失败时,返回NULL。定义如下: void * operator new(std::size_t,const std::nothrow_t&) throw(); void operator delete(void*) throw(); (3)placement new意即“放置”,这种new允许在一块已经分配成功的内存上重新构造对象或对象数组。placement new不用担心内存分配失败,因为它根本不分配内存,它做的唯一一件事情就是调用对象的构造函数。定义如下: void* operator new(size_t,void*); void operator delete(void*,void*); 提示1:palcement new的主要用途就是反复使用一块较大的动态分配的内存来构造不同类型的对象或者他们的数组。 提示2:placement new构造起来的对象或其数组,要显示的调用他们的析构函数来销毁,千万不要使用delete。 char* p = new(nothrow) char[100]; long *q1 = new(p) long(100); int *q2 = new(p) int[100/sizeof(int)]; 二.实例 1.plain new/delete.普通的new 定义如下: void *operator new(std::size_t) throw(std::bad_alloc); void operator delete(void*) throw(); 注:标准C++ plain new失败后抛出标准异常std::bad_alloc而非返回NULL,因此检查返回值是否为NULL判断分配是否成功是徒劳的。 测试程序: 复制代码代码如下: #include "stdafx.h" #include using namespace std; char *GetMemory(unsigned long size) { char *p=new char[size];//分配失败,不是返回NULL return p; } int main() { try { char *p=GetMemory(10e11);// 分配失败抛出异常std::bad_alloc //........... if(!p)//徒劳 cout<<"failure"< delete [] p; } catch(const std::bad_alloc &ex) { cout< } return 0; } 2.nothrow new/delete不抛出异常的运算符new的形式,new失败时返回NULL。 定义如下: 复制代码代码如下: void *operator new(std::size_t,const std::nothrow_t&) throw(); void operator delete(void*) throw(); struct nothrow_t{}; const nothrow_t nothrow;//nothrow作为new的标志性哑元 测试程序: 复制代码代码如下: #include "stdafx.h" #include #include using namespace std; char *GetMemory(unsigned long size) { char *p=new(nothrow) char[size];//分配失败,是返回NULL if(NULL==p) cout<<"alloc failure!"< return p; } int main() { try { char *p=GetMemory(10e11); //........... if(p==NULL) cout<<"failure"< delete [] p; } catch(const std::bad_alloc &ex) { cout< } return 0; } 3.placement new/delete 主要用途是:反复使用一块较大的动态分配成功的内存来构造不同类型的对象或者它们的数组。例如可以先申请一个足够大的字符数组,然后当需要时在它 上面构造不同类型的对象或数组。placement new不用担心内存分配失败,因为它根本不分配内存,它只是调用对象的构造函数。 测试程序: 复制代码代码如下: #include "stdafx.h" #include #include using namespace std; class ADT { int i; int j; public: ADT() { } ~ADT() { } }; int main() { char *p=new(nothrow) char[sizeof(ADT)+2]; if(p==NULL) cout<<"failure"< ADT *q=new(p) ADT; //placement new:不必担心失败 // delete q;//错误!不能在此处调用delete q; q->ADT::~ADT();//显示调用析构函数 delete []p; return 0; } 注:使用placement new构造起来的对象或数组,要显式调用它们的析构函数来销毁(析构函数并不释放对象的内存),千万不要使用delete.这是因为placement new构造起来的对象或数组大小并不一定等于原来分配的内存大小,使用delete会造成内存泄漏或者之后释放内存时出现运行时错误。 混凝土添加剂 在混凝土、砂浆或净浆的制备过程中,掺人不超过水泥用量5%(特殊情况除外),能对混凝土、砂浆或净浆的正常性能要求而改性的一种产品,称为混凝土外加剂。自上个世纪30年代美国开始使用引气剂,混凝土外加剂至今已经有70多年的历史了。从20世纪60年代日本和西德研制成功高效减水剂以来,外加剂进入了迅速发展的时代。现在,在发达国家使用外加剂的混凝土占混凝土总量的70%~80%,有些已达到100%,外加剂已成为混凝土材料不可缺少的组成部分。 我国外加剂的研究和应用较国外晚,从20世纪50年代才开始研制木质素类的减水剂,并用于大型水库的大体积混凝土,以后由于某些原因停滞多年。直到70年代后,外加剂的科研、生产和应用才取得较大进展。特别是1982年和1986年分别成立了混凝土外加剂学会和混凝土外加剂协会后,我国的混凝土外加剂得到了进一步的加速发展,使用外加剂的混凝土量占混凝土总量的比率从5%增长到近40%。 近年来,我国外加剂行业的科研队伍不断发展壮大,生产企业不断增加,新产品不断研制开发,应用领域不断拓展扩大,砼外加剂行业成为经济建设中一支不可替代的新生力量,与之同时,外加剂的应用技术也得到了迅速发展。 1混凝土外加剂的种类 混凝土外加剂按其主要功能分为六类: ①改善新拌混凝土流动性的外加剂。主要包括各种减水剂、引气剂、灌浆剂、泵送剂等。 ②调节混凝土凝结时间和硬化性能的外加剂。主要包括缓凝剂、促凝剂、早强剂等。 ③调节混凝土含气量的外加剂。主要包括引气剂、加气剂、发泡剂等。 ④增强混凝土物理力学性能的外加剂。主要包括引气剂、防水剂、防冻剂、灌浆剂、膨胀剂等。 ⑤改进混凝土抗侵蚀作用的外加剂。主要包括了引气剂、防水剂、阻锈剂、抗渗剂等。 ⑥为混凝土提供特殊性能的外加剂。主要包括发泡剂、着色剂、杀菌剂、碱骨料反应抑制剂等。 2推广应用混凝土外加剂的意义 推广应用混凝土外加剂不仅可以改善混凝土的物理力学性能,提高工程质量,节约水泥,节省能源、缩短工期,改善施工条件,满足特种混凝土的技术需要。同时,还具有投资少、见效快、技术经济效益明显,社会效益突出等特点。根据不同技术要求,使用不同类型的外加剂可以获得不同的经济效益。混凝土中掺加引气减水剂,一是使混凝土中的微细气泡均匀分布以提高抗冻和抗渗的能力;二是由于它的分散作用而带来减水增强效果。因而,既能改善新拌混凝土的和易性,又能提高混凝土的耐久性。 混凝土中掺加高效减水剂、早强减水剂,可使混凝土的1天强度提高1倍以上,这样使配制高强或超高强度混凝土就易于实现。而混凝土强度的提高,不仅扩大了混凝土的使用范围,在一定程度上也可改变目前结构设计中存在的“肥梁、胖柱、深基础”等状况。这样,既减轻了房屋的自重,又节省了建筑材料。混凝土中掺加缓凝减水剂。可延长混凝土由塑性状态进入固态所需的时间,减慢水泥水化放热速率。可满足不同工程,特别是大体积混凝土工程的施工及质量要求。 混凝土中掺加速凝剂。可满足坑道中喷射混凝土和国防抢修等混凝土工程中的施工要求。混凝土中掺加膨胀、灌浆剂。可使混凝土的密实程度提高,从而增加了“混凝土的稳定性的抗渗、抗冻”等性能。混凝土中 C++文件操作详解(ifstream 、ofstream 、fstream ) C++通过以下几个类支持文件的输入输岀: ofstream: 写操作(输岀)的文件类 ifstream: 读操作(输入)的文件类 fstream: 可同时读写操作的文件类 打开 文件(Open a file ) 对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来, 也就是说打开 一个文件。被打开的文件在程序中由一个流对象 (stream object )来表示(这些类的一个实例), 而对这个流对象所做的任何输入输岀操作实际就是对该文件所做的操作。 要通过一个流对象打开一个文件,我们使用它的成员函数 open (): void ope n (const char * file name, ope nm ode mode ); 这里file name 是一个字符串,代表要打开的文件名, mode 是以下标志符的一个组合: ios::i n 为输入(读)而打开文件 ios::out 为输岀(写)而打开文件 ios::ate 初始位置:文件尾 ios::app 所有输岀附加在文件末尾 ios::tru nc 如果文件已存在则先删除该文件 ios::b inary 二进制方式 这些标识符可以被组合使用,中间以 ”或”操作符(|)间隔。例如,如果我们想要以二进制方式打 开文件"example.bin" 来写入一些数据,我们可以通过以下方式调用成员函数 open ()来实现: ofstream file; file.ope n ("example.b in ”,ios::out | ios::app | ios::b in ary ); ofstream, ifstream 和fstream 所有这些类的成员函数 ope n 都包含了一个默认打开文件的方 式,这三个类的默认方式各不相同: 类 参数的默认方式 ofstream i os::out | ios::trunc ifstream i os::in fstream ios::i n | ios::out 只有当函数被调用时没有声明方式参数的情况下, 默认值才会被采用。 如果函数被调用时声明了 任何参数,默认值将被完全改写,而不会与调用参数组合。 由于对类ofstream, ifstream 和fstream 的对象所进行的第一个操作通常都是打开文件,这 些类都有一个构造函数可以直接调用 open 函数,并拥有同样的参数。这样,我们就可以通过以 下方式进行与上面同样的定义对象和打开文件的操作: (由ostream 引申而来) (由istream 引申而来) (由iostream 引申而来) 减水剂的作用及用途 一、减水剂的作用 减水剂是指在混凝土和易性及水泥用量不变条件下,能减少拌合用水量、提高混凝土强度;或在和易性及强度不变条件下,节约水泥用量的外加剂。与普通减水剂相比,减水及增强作用都较强。 1)静电斥力理论 水泥水化后,由于离子间的范德华力作用以及水泥水化矿物、水泥主要矿物在水化过程中带不同电荷而产生凝聚,导致了混凝土产生絮凝结构。减水剂大多属阴离子型表面活性剂,掺入到混凝土中后,减水剂中的负离子-SO—、-COO—就会在水泥粒子的正电荷Ca2+矿的作用下而吸附于水泥粒子上,形成扩散双电层(Zel。a电位)的离子分布,在表面形成 2)立体位阻效应 掺有减水剂的水泥浆中,减水剂的有机分子长链实际上在水泥微粒表面是呈现各种吸附状态的。不同的吸附态是因为高效减水剂分子链结构的不同所致,它直接影响到掺有该类减水剂混凝土的坍落度的经时变化。有研究表明萘系和三聚氰胺系减水剂的吸附状态是棒状链,因而是平直的吸附,静电排斥作用较弱。其结果是Zeta电位降低很快,静电衡容易随着水泥水化进程的发展受到破坏,使范德华引力占主导,坍落度经时变化大。 3)润滑作用 减水剂的极性亲水基团定向吸附于水泥颗粒表面,多以氢键形式与水分子缔合,再加上水分子之问的氢键缔合,构成了水泥微粒表面的一层稳定的水膜,阻止水泥颗粒问的直接接触,增加了水泥颗 粒间的滑动能力,起到润滑作用,从而进一步提高浆体的流动性。水泥浆巾的微小气泡,同样对减水剂分的定向吸附极性基团所包裹,使气泡与气泡及气泡。 在混凝土掺加减水剂后,伴随水化反应进行,减水剂分子分散于分散系,均匀吸附在水泥颗粒表面,破坏水泥颗粒的团聚,使得水泥颗粒由于减水剂分子存在的特殊作用处于高度分散安定状态。在低含水量时就具有较高流动性。对于高性能减水剂在水泥颗粒表面的吸附状态及分散作用机理的研究有许多,其中较为着名的有立体效应理论、空位稳定型理论、D-L-V-O理论等。 二、减水剂的用途 1.在不改变各种原材料配比(除水泥)及混凝土强度的情况下,可以减少水泥的用量,掺加水泥质量%~%的混凝土减水剂,可以节省水泥量的15~30%以上。 2.在不改变各种原材料配比(除水)及混凝土的坍落度的情况下,减少水的用量,可以大大提高混凝土的强度,早强和后期强度分别比不加减水剂的混凝土提高60%及20%以上,通过减水,可以实现浇筑C100标号的高强混凝土。 3.在不改变各种原材料配比的情况下,可以大幅度提高混凝土的流变性及可塑性,使得混凝土施工可以采用自流、泵送、无需振动等方式进行施工,提高施工速度、降低施工能耗。 4.掺加混凝土高效减水剂,可以提高混凝土的寿命一倍以上,即使建筑物的正常使用寿命延长一倍以上。 5、减少混凝土凝固的收缩率,防止混凝土构件产生裂纹;提高抗冻性,有利于冬季施工。 引气剂 使混凝土拌合物在搅拌时引入空气而形成微小气泡的外加剂。绝大部分引气剂的成分为松香衍生物以及各种磺酸盐,如烷基磺酸钠、烷基苯磺酸钠,常用掺量是水泥重量的50~500ppm。引气剂主要用于抗冻性要求高的结构,如混凝土大坝、路面、桥面、飞机场道面等大面积易受冻的部位。 1、气泡结构好,气泡半径小,抗冻指标高,用于高耐久性的混凝土结构,如水坝、高等级公路、热电站冷却塔、水池水工、港口等。 2、撒除冰盐的混凝土公路及桥梁。 fstream文件操作详细说明 目录 一、打开文件 (2) 二、关闭文件 (3) 三、读写文件 (3) 1、文本文件的读写 (3) 2、二进制文件的读写 (4) 四、检测EOF (5) 五、文件定位 (5) fstream文件操作详细说明 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<''\n'';就表示把字符串"Write Stdout"和换行字符(''\n'')输出到标准输出流。 2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。 一、打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char*filename,int mode,int access); 参数说明: filename:要打开的文件名 mode:要打开文件的方式 access:打开文件的属性 打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下: ios::app:以追加的方式打开文件 ios::ate:文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary:以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文ios::in:文件以输入方式打开 ios::out:文件以输出方式打开 ios::nocreate:不建立文件,所以文件不存在时打开失败 ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败 ios::trunc:如果文件存在,把文件长度设为0 可以用“或”把以上属性连接起来,如ios::out|ios::binary 打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用“或”或者“+”把以上属性连接起来,如:1|2就是以只读和隐含属性打开文件。 例如:以二进制输入方式打开文件c:\config.sys 《逗号、句号、感叹号、问号的认识和运用》教学设计国门小学李建英 教学目标: 1、认识逗号、句号、感叹号、问号。 2、会在句子中正确使用逗号,感叹号,问号,句号。 3、激发学生学习标点符号的兴趣,乐学标点符号。 教学中难点: 会在句子中正确使用逗号,感叹号,问号,句号。 教学准备:课件 教学过程 一、谈话导入 对刚入学的小朋友来说,标点符号比较抽象,不简易记住,为了更好的记住和正确的使用,我们先来认识他们。 认识逗号、句号、问号,感叹号 (1)介绍逗号、句号、问号,感叹号的样子。 课件出示:句号(,))像个小圆圈。 逗号(。)像只小蝌蚪。 问号(?)像只小耳朵。 感叹号(!)像个小炸弹。 二、逗号,句号。问号,感叹号运用方法 现在我们已经认识了逗号、句号、问号和感叹号,那么你想知道该如何运用它们吗? 1、课件出示:一句话说完用句号(。)句号大凡表示两个内容,谁在干什么,或谁怎样。 例如:我爱祖国。(这句话说完了,所以要用句号。) 2、课件出示(2)话没说完用逗号(,)。 例如:秋风一吹(,)树叶落下来(。)“秋风一吹”话没说完这里要用逗号。“树叶落下来了”这句话说完了,所以要用句号。 3、课件出示如有问题用问号(?)。大凡用在带有疑问,请求句子上。 例如:你要上哪去?这是一个带有疑问的句子,所以用问号。 4、课件出示感叹,赞赏,惊异用感叹号(!)。 例如;这朵花真美呀!这是一句带有赞赏的句子,所以要用感叹号。 三、巩固记忆,总结用法。 (一)为了便当记住,老师编了一首儿歌,帮助记忆。 我是学习标点的小能手 我是句号小圆圈,用来表示话说完。 我是逗号(,)小蝌蚪,话没说完就用我. 我是问号(?)小耳朵,表示一句问话完. 我是感叹号(!)小炸弹,表示惊喜和感叹. 同学们,你们记住了吗? 减水剂品种及特点 (一)定义 减水剂是指在保持砂浆稠度基本相同的条件下,能减少拌合用水量的添加剂。 (二)种类 (三)预拌砂浆中的应用 超塑化剂的典型用途是自流平砂浆。自流平砂浆中常用的超塑化剂主要有干酪素和三聚氰胺甲醛缩合物,它们对于保证自流平砂浆在一定的水灰比下具有良好的可工作性是必不可少的。干酪素在薄层自流平砂浆中具有非常好的使用的效果,可使其具有良好的保水性和内聚性,从而降低自流平砂浆的离析和泌水倾向。不过,干酪素是一种从牛奶中提炼出来的天然蛋白质产品,在水泥砂浆中使用会受砂浆初始高碱性条件作用(pH 12)或受砂浆中生长的微生物作用产生化学降解,即干酪素可以产生含有-NH2和/或-SH基团的物质,它们具有令人厌恶的气味。而三聚氰胺甲醛缩合物常常由于残余甲醛的存在而出现甲醛排放的问题。甲醛含量较高的合成超塑化剂1天后典型的排放量在1000-2000 μg/m3。在室温下,这些化学物质足以挥发出来而引起一些症状,如对呼吸和眼睛的刺激。因此干酪素和一些合成超塑化剂的使用在一些国家受到了限制甚至禁止。此外,由于干酪素是一种天然产品,价格和质量上的波动也是其使用过程中存在的问题。 为了兼顾天然和合成超塑化剂的性能特点,并考虑到将VOC排放降低到最低程度,一些公司开发了具有附加的流化功能的可在分散胶粉系列产品来制备自流平砂浆,而无需添加超塑化剂。 其它类型的高效减水剂如萘系和胺基磺酸盐系减水剂也用于地面硬化剂和灌浆材料等干砂浆产品。 目前使用较为广泛的减水剂种类为木质素系减水剂、萘系、三聚氰胺高效减水剂 以及聚羧酸盐系高效减水剂,各自的特点如下: ⑴木质素系减水剂 木质素系减水剂主要成分为木质素磺酸盐,包括木钙、木钠和木镁三种,为普通减水剂。其减水率不高,而且缓凝、引气,因此使用时要控制适宜的掺量,否则掺量过大会造成强度下降且不经济,甚至很长时间不凝结,造成工程事故。 一般适宜掺量为水泥质量的0.2%~0.3%。 ⑵萘系高效减水剂 萘系、甲基萘系、蒽系、古马隆系、煤焦油混合物系减水剂,因其生产原料均来自煤焦油中的不同馏分,因此统称为煤焦油系减水剂。此类减水剂皆为含单环、多环或杂环芳烃并带有极性磺酸基团的聚合物电解质,相对分子质量在1500~10000的范围内,因磺酸基团对水泥分散性很好,即减水率高,故煤焦油系减水剂均属高效减水剂的范畴,在适当分子量范围内不缓凝、不引气。由于萘系减水剂生产工艺成熟,原料供应稳定,且产量大,应用广,逐渐占了优势,因而通常煤焦油系减水剂主要是指萘系减水剂。萘系高效减水剂喷雾干燥后,可用于灌浆料做流平剂。 适宜掺量一般为水泥质量的0.2%~1.0%。 ⑶三聚氰胺系高效减水剂 三聚氰胺系高效减水剂(俗称蜜胺减水剂),化学名称为磺化三聚氰胺甲醛树脂,其性能与萘系减水剂近似,均为非引气型,且无缓凝作用,其减水增强作用略优于萘系减水剂,但掺量和价格也略高于萘系减水剂。三聚氰胺系高效减水剂喷雾干燥后,已广泛用于灌浆料、自流平砂浆等产品。 适宜掺量一般为水泥质量的0.5%~2.0%。 ⑷聚羧酸盐系高效减水剂 聚羧酸盐系高效减水剂是随着高性能混凝土的发展和应用而开发、研制的一类新型高性能混凝土减水剂,它具有强度高,耐热性、耐久性、耐候性好等优异性能。其优点是掺量小、减水率高,具有良好的流动性;保坍性好,90min内坍落度基本无损失;合成中不使用甲醛,对环境不造成污染。聚羧酸盐系高效减水剂用于干混砂浆还处于起步阶段。 适宜掺量一般为水泥质量的0.05%~1.0%。 砂浆中掺加减水剂需注意哪些问题? 预拌砂浆中通常都掺入一定数量的保水增稠材料,而保水增稠材料通常都有较强的需水性,因而增加了砂浆的单位用水量,也影响到砂浆的力学性能和耐久性,因此需采用适当的减水剂对水泥浆体体系进行分散。减 fstream.h #if _MSC_VER > 1000 #pragma once #endif #ifdef __cplusplus #ifndef _INC_FSTREAM #define _INC_FSTREAM #if !defined(_WIN32) && !defined(_MAC) #error ERROR: Only Mac or Win32 targets supported! #endif #ifdef _MSC_VER // Currently, all MS C compilers for Win32 platforms default to 8 byte alignment. #pragma pack(push,8) #include 绪论 混凝土是一类量大面广、历史悠久的传统材料,广泛应用于土木、建筑、水利等工程。建筑业的迅速发展,对混凝土的性能提出了新的要求,如提高混凝土的强度、耐久性,改善新拌混凝土的流动性,减少混凝土在运输中的塌落度损失等。普通混凝土已经不能满足现行的施工工艺要求。国内外的生产实践证明,应用外加剂是混凝土技术进步的主要途径,能使混凝土满足各种不同的施工要求,具有投资少、见效快、推广应用较容易、技术经济效益显著等优点。 混凝土外加剂是在拌制混凝土过程中掺入的用以改善混凝土性能的物质,赋予新拌混泥土和硬化混泥土以优良性能的化学外加剂,掺量通常不大于水泥(或胶凝材料)质量的5%,它是混泥土的第五组分。混泥土外加剂是生产各种高性能混泥土和特种混泥土不可缺少的部分。 混泥土外加剂可以改进混泥土内部结构和工艺过程,应用混泥土外加剂的目的在于改善混泥土的和易性和硬化混泥土的性能,同时获得节省水泥、节省能源、提高强度、缩短工期、加快模板周转等多种经济技术效果。以减水剂的发展为核心,矿物外加剂的应用离不开化学外加剂,各种复合外加剂一般都包括减水剂成分。在混泥土中掺入外加剂后,许多性能如微观结构、孔隙率、吸附性、硬化速度、强度等将发生改变,水泥矿物水化和水泥本身的一些性能也会受到影响[1]。 在混凝土外加剂中,减水剂是目前应用最广的一种外加剂。减水剂又称为分散剂或塑化剂。减水剂对混泥土的影响主要表现为:一是:保持混泥土用水量不变,提高拌合物流动性;二是:保持流动性和水泥用量不变,可减少用水量,降低水灰比,提高混泥土的强度;三是:保证强 度和流动性不变,在减水的同时减少水泥用量,可节约水泥[2]。 ofstream/ifstream 文本/二进制方式读入/写出数据方法 文件I/O 在C++中比烤蛋糕简单多了。在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件 标点符号误用集锦(详版) 顿号是常用在并列的词或词组之间表示句子内部最小停顿的符号。在句子里,一个顿号相当于一个连词,停顿时间比逗号短。如果对顿号特点理解不清,就会造成“顿”冠“逗”戴。 1.约(概)数间误用顿号 小河对岸三、四里外是浅山,好似细浪微波,线条柔和……(95年) [点拨]这儿“三、四”是两个相临的约(概)数,不应有顿号。 2.并列数字之间缺顿号 这项任务由三四班共同完成。 [点拨]由“共同”可知“三四”并非一个班。不能缺顿号。 3.集合词语间误用顿号 “高招”期间,有关部门一定要把好大专院、校的收费关。 [点拨]“大专院校”是集合词语,已约定俗成,不能断开。另如,“工农兵”“生动感人”“中小学生”“公检法三家”等。 4.不同层次的词语之间误用顿号(顿号、逗号的停顿分不清) 艺术节期间还举办了形式多样的文艺评论活动、内容独特的文物、美术、摄影展览,以及大规模的经贸活动。 [点拨]举办的活动内容共三大类,第一大类“文艺评论活动”,第二大类“文物、美术、摄影展览”,第三大类“经贸活动”,三大类之间用逗号断开,第二大类中又有三小类,小类之间用顿号断开。解这类题一定要分清大类、小类的层次。这样不分顿号和逗号的使用造成内容层次的混乱。又如: ⑴来这儿参加冬令营的有湖南、湖北的中学生、广西、云南的大学生。 ⑵水是人类赖以生存的特殊资源。由于一些国家正面临水资源危机,这些国家的农业、工业、人民的生活、健康都受到威胁。(2005年绵阳卷) ⑶这次会议对玉米、小麦、油料、和棉花的收购任务,做了重新安排,大家都很满意。 [点拨]⑴“中学生、广西”中的顿号应改为逗号。⑵中“农业、工业”是一个层次,和“人民的生活、健康”组成联合词组,又是一个层次,两级并列成分中不要都用顿号,应将“工业”后的顿号改为逗号。⑶顿号用在并列词语之间表停顿,这是不错的,但却有两处不妥。玉米、小麦是一类,与“油料”之间的停顿应当用逗号;“油料”后边的顿号应删掉,因为已用了连词“和”。 5.分句之间误用顿号 今年春季,这个省……改道工程,任务重、工程难、规模大。(97年) [点拨]此句中的“任务重”“工程难”“规模大”不是句子内部的成分并列,而是三个主谓句的并列,应该用逗号。动宾短语并列时同此,如“他常来这里下棋、品茶、听书”也错。 6.语气词后误用顿号 ofstream的使用方法 ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<’\n’;就表示把字符串"Write Stdout"和换行字符(’\n’)输出到标准输出流。 2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。 一、打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char* filename,int mode,int access); 参数: filename:要打开的文件名 mode:要打开文件的方式 access:打开文件的属性 打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下: ios::app:以追加的方式打开文件 ios::ate:文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary:以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文ios::in:文件以输入方式打开(文件数据输入到内存) ios::out:文件以输出方式打开(内存数据输出到文件) ios::nocreate:不建立文件,所以文件不存在时打开失败 ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败 ios::trunc:如果文件存在,把文件长度设为0 可以用“或”把以上属性连接起来,如ios::out|ios::binary 打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用“或”或者“+”把以上属性连接起来,如3或1|2就是以只读和隐含属性打开文件。 例如:以二进制输入方式打开文件c:\config.sys fstream file1; file1.open("c:\\config.sys",ios::binary|ios::in,0); 如果open函数只有文件名一个参数,则是以读/写普通文件打开,即: file1.open("c:\\config.sys"); <=> file1.open("c:\\config.sys",ios::in|ios::out,0); 另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了: ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间? 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n'?就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。 2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x?就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。 一、打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char* filename,int mode,int access)? 参数: filename: 要打开的文件名 mode: 要打开文件的方式 access: 打开文件的属性 打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下: ios::app: 以追加的方式打开文件 ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文 ios::in: 文件以输入方式打开(文件数据输入到内存) ios::out: 文件以输出方式打开(内存数据输出到文件) ios::nocreate: 不建立文件,所以文件不存在时打开失败 ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败 ios::trunc: 如果文件存在,把文件长度设为0 可以用“或”把以上属性连接起来,如ios::out|ios::binary 打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用“或”或者“+”把以上属性连接起来,如3或1|2就是以只读和隐含属性打开文件。 例如:以二进制输入方式打开文件c:\config.sys fstream file1? file1.open("c:\\config.sys",ios::binary|ios::in,0)? 【转载】C++中文件流(fstream)的使用方法及示例 (2011-08-22 16:00:14)转载▼ 分类:编程拾萃 标签:杂 谈 C++文件流: fstream // 文件流 ifstream // 输入文件流 ofstream // 输出文件流 头文件: #include f1 << setw(20) << "song: " << "Moonlight Sonata" << endl; f1.close(); //关闭文件} 文件操作: 打开文件 文件名 注意路径名中的斜杠要双写,如: "D:\\MyFiles\\ReadMe.txt" 文件打开方式选项: ios::in = 0x01, //供读,文件不存在则创建(ifstream默认的打开方式) ios::out = 0x02, //供写,文件不存在则创建,若文件已存在则清空原内容(ofstream默认的打开方式) ios::ate = 0x04, //文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用 ios::app = 0x08, //供写,文件不存在则创建,若文件已存在则在原文件内容后写入新的内容,指针位置总在最后 ios::trunc = 0x10, // 在读写前先将文件长度截断为0(默认) ios::nocreate = 0x20, //文件不存在时产生错误,常和in或app 逗号-顿号-分号-句号的用法 逗号的用法 一、用于需要分隔的主语和谓语之间 主语和谓语之间一般不用逗号。但主语和谓语如果比较长,需要加逗号以表示说话时中间有停顿,也便于阅读时分清句法结构。例如:(1)母亲沉痛的三言两语的诉说以及我亲眼见到的许多不平的事实,启发了我幼年时期反抗压迫追求光明的思想,使我决心寻找新生活。(朱德《回忆我的母亲》) (2)苏州园林里的门和窗,图案设计和雕镂琢磨工夫都是工艺美术的上品。(叶圣陶《苏州园林》) 关于逗号用法的例句中的着重号均为本书引用时所加。例(l)的主语较长,其后有停顿。例(2)的谓语较长,而且是主谓结构充当谓语,前面不加逗号,与全句的主语的界限不易分清。 有些句子虽短,在主语和谓语的界限不清楚时也需要加逗号分隔,这种情况常见于古籍。例如《老子》第一章的一个句子有三种标点法: (3)无名天地之始,有名万物之母。 (4)无名,天地之始;有名,万物之母。 (5)无,名天地之始;有,名万物之母。 本句由两个分句组成,从换气的需要来说,中间 加一个逗号表示停顿一次就够了,如例(3)。但在这样分出来的两个分句中,主语和谓语和界限是不清楚的,所以在主语和谓语之间需要加逗号表示语法上的停顿。由于对原意的理解不同,例(4)和(5)对主语和谓语的界限的划分也不同。 句子不论长短,在主语需要强调时,其后加逗号同谓语分隔。例如: (6)青,取之于蓝,而青于蓝;冰,水为之,而寒于水。(荀况《劝学》) (7)她,教了三十年的书,绝不能看着一个人才被埋没。(李心田《永不忘记》) 二、用于带语气词的主语之后 主语后边如果带有“啊”“呢”“呐”“么”“嘛”“吧”等语气词,说话时有停顿,用逗号表示。例如: (1)祖国的海洋啊,多少人为你歌唱,多少人为你奔忙!(童裳亮《海洋与生命》) (2)他呢,很乐意地、全神贯注地把头深深地埋进校样中。(金平《老校对员》) 三、用于需要与动词分隔的长宾语之前 动词和宾语的联系比较紧密,中间一般不必加逗号。有一类提示性动词(如:表示、指出、声明、 逗号的用法 一、用于需要分隔的主语和谓语之间 主语和谓语之间一般不用逗号。但主语和谓语如果比较长,需要加逗号以表示说话时中间有停顿,也便于阅读时分清句法结构。例如: (1)母亲沉痛的三言两语的诉说以及我亲眼见到的许多不平的事实,启发了我幼年时期反抗压迫追求光明的思想,使我决心寻找新生活。(朱德《回忆我的母亲》) (2)苏州园林里的门和窗,图案设计和雕镂琢磨工夫都是工艺美术的上品。(叶圣陶《苏州园林》) 关于逗号用法的例句中的着重号均为本书引用时所加。例(l)的主语较长,其后有停顿。例(2)的谓语较长,而且是主谓结构充当谓语,前面不加逗号,与全句的主语的界限不易分清。有些句子虽短,在主语和谓语的界限不清楚时也需要加逗号分隔,这种情况常见于古籍。例如《老子》第一章的一个句子有三种标点法: (3)无名天地之始,有名万物之母。 (4)无名,天地之始;有名,万物之母。 (5)无,名天地之始;有,名万物之母。 本句由两个分句组成,从换气的需要来说,中间加一个逗号表示停顿一次就够了,如例(3)。但在这样分出来的两个分句中,主语和谓语和界限是不清楚的,所以在主语和谓语之间需要加逗号表示语法上的停顿。由于对原意的理解不同,例(4)和(5)对主语和谓语的界限的划分也不同。 句子不论长短,在主语需要强调时,其后加逗号同谓语分隔。例如: (6)青,取之于蓝,而青于蓝;冰,水为之,而寒于水。(荀况《劝学》) (7)她,教了三十年的书,绝不能看着一个人才被埋没。(李心田《永不忘记》) 二、用于带语气词的主语之后 主语后边如果带有“啊”“呢”“呐”“么”“嘛”“吧”等语气词,说话时有停顿,用逗号表示。例如: (1)祖国的海洋啊,多少人为你歌唱,多少人为你奔忙!(童裳亮《海洋与生命》) (2)他呢,很乐意地、全神贯注地把头深深地埋进校样中。(金平《老校对员》) 三、用于需要与动词分隔的长宾语之前 动词和宾语的联系比较紧密,中间一般不必加逗号。有一类提示性动词(如:表示、指出、声明、反映、报道、认为、觉得、相信、发现、看到、听说、知道、建议),宾语往往较长,在动词和宾语之间有停顿时加逗号表示。例如: (1)有的考古工作者认为,南方古猿是生存在第三纪之末与第四纪之初。(李四光《人类的出现》) (2)考古学表明,鲸鱼也曾登过陆,终因躯体庞大沉重,还是回归大海去了。(徐世廷《生物几何学》) 例(l)的宾语是单句形式,例(2)的宾语是复句形式,都比较长,前面加逗号表示停顿,帮助分清句法结构。如果为了强调提起下文,逗号可改用冒号。如果宾语是名词性短语,前面不能用逗号,比较: (3)他认识到,他犯了一个严重的错误。 (4)他认识到他所犯错误的严重性。 例(3)的宾语是谓语短语(句子形式),有相对的独立性,前面可以加逗号。例(4)的宾语是名词性短语,在句中没有独立性,前面不能加逗号。 四、用于前置的谓语之后 (1) “怎么了,你?”(孙犁《荷花淀》) 木质素磺酸钙 木质素磺酸钙具有强力的分解性、粘结性、蟹合性。如上所述由于木质素磺酸钙的分子量的不同,具有不同程度的分散性,木素磺酸钙有水溶性亲液胶体性质,质点上带有电荷,是一种表面活性物质,能吸附在各种固体质点的表面上,更因它是强酸性所成的盐,所以可以进行离子交换作用,再者因为在木素磺酸的组织结构上存在着有各种活性基,更能产生内在的聚合作用或与其它化合物发生缩合作用。 基于木质素磺酸钙具有上述的各种特性,所以可作为混凝土减水剂。水泥料浆稀释剂、砂型加固剂、农药乳化剂、选矿分散剂、皮革预鞣剂、陶瓷或耐火材料增塑剂、油井或水坝灌浆凝胶剂,水处理剂,加工煤球……等等。目前木素磺酸钙已在我国建筑、水处理,水电、冶金、石油、采矿、陶瓷等工业,得到广泛的应用。 二、木质素磺酸钙产品在混凝土减水剂方面的主要的应用 1、木素磺酸钙产品在混凝土中减水增强作用的机理 木素磺酸钙和木素磺酸钠减水剂是一种表面活性剂,加入混凝土中后,由于憎水基团定向吸附于水泥颗粒表面,这样使水泥带有负电荷。具有相同电荷的水泥颗粒在电荷斥力的作用下相互斥离分散,水泥在加水初期形成的絮状结构变成分散结构,絮凝状凝聚体内的游离水被释放出来,从而达到减水剂的目的。观测表明,木钙加入混凝土后,混合5分钟已有80%以上的减水剂被吸附,在电子显微镜下清晰可见的水化点中心明显增加,水化物分布均匀,水化晶体纤维较长的各种微观特征。可见加入木素磺酸钙,游离水蒸发留下的毛细孔就少,内部结构密实,也就是说,孔隙率的降低显然有利于混凝土强度的提高,改善了水泥的孔隙结构的大小及其分布状况,使结晶生长速度延缓,晶体生长更充分,因而得到更多的纤维状晶体相互穿插,形成坚强的网络结构,从而使混凝土强度显著提高。因此,在混凝土中掺用木钙减水剂,可减少混凝土拌和物的用水量,降低水灰比,改善和易性,有利于泵送,提高混凝土强度、密实性和耐久性。 三.木钙减水剂主要性能指标与经济效果 1、改善混凝土性能当水泥用量相同,坍落度与空白混凝土相近,可减少用水量10—15%,28天强度提高10—20%,1年强度提高10%左右。 2、节约水泥当混凝土的强度和坍落度相近时,可节省水泥10%左右,使用1吨减水剂可节省30—40吨水泥。 3、改善混凝土和易性当混凝土的水泥用量和用水量不变,低塑性混凝土的坍落度可增大两倍左右,(由3-5cm提高到8-18cm),早期强度与未掺者基本接近。 4、有缓凝作用掺入0.25%的木钙减水剂后,在保持混凝土坍落度基本一致时,初凝时间普通水泥延缓1-2小时,矿渣水泥2-4小时,终凝时间普通水泥2小时,矿渣水泥 2-3小时,若不减少用水量而增大坍落度时,或保持相同坍落度而用以节省水泥用量时,则凝结时间延缓程度比减水的更大。 5、能降低水泥早期水化热放热峰出现时间比未掺都有所推迟,普通水泥约3小时,矿渣水泥约8小时,大坝水泥在11小时以上,放热峰最高温度与未惨者比较,普通水泥略低,矿渣水泥及大坝水泥均低于3℃ C++文件操作详解(ifstream、ofstream、fstream) C++ 通过以下几个类支持文件的输入输出: ?ofstream: 写操作(输出)的文件类(由ostream引申而来) ?ifstream: 读操作(输入)的文件类(由istream引申而来) ?fstream: 可同时读写操作的文件类(由iostream引申而来) 打开文件(Open a file) 对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件。被打开的文件在程序中由一个流对象(stream object)来表示(这些类的一个实例) ,而对这个流对象所做的任何输入输出操作实际就是对该文件所做的操作。 要通过一个流对象打开一个文件,我们使用它的成员函数open(): void open (const char * , openmode mode); 这里是一个字符串,代表要打开的文件名,mode 是以下标志符的一个组合: 这些标识符可以被组合使用,中间以”或”操作符(|)间隔。例如,如果我们想要以二进制方式打开文件"example.bin" 来写入一些数据,我们可以通过以下方式调用成员函数open()来实现: ofstream file; ("example.bin", ios::out | ios::app | ios::binary); ofstream, ifstream 和fstream所有这些类的成员函数open 都包含了一个默认打开文件的方式,这三个类的默认方式各不相同: 只有当函数被调用时没有声明方式参数的情况下,默认值才会被采用。如果函数被调用时声明了任何参数,默认值将被完全改写,而不会与调用参数组合。 由于对类ofstream, ifstream 和fstream 的对象所进行的第一个操作通常都是打开文件,这些类都有一个构造函数可以直接调用open 函数,并拥有同样的参数。这样,我们就可以通过以下方式进行与上面同样的定义对象和打开文件的操作:混泥土添加剂-(分类用途等相关知识)
C++文件操作详解(ifstream、ofstream、fstream)
减水剂的作用及用途
C FSTREAM文件操作详细说明
(部编)人教语文2011课标版一年级下册逗号、句号、感叹号,问号的认识和运用
减水剂品种及特点
fstream_h
减水剂的发展及其应用
fstream用法
标点符号使用注意事项
ofstream的使用方法
ofstream和ifstream详细用法
C++中文件流(fstream)的使用方法及示例
逗号-顿号-分号-句号的用法
逗号 顿号 分号 句号地用法
减水剂各种小料的作用
C文件操作详解ifstreamofstreamfstream