#include <iostream> #include <fstream> #include <string.h> using namespace std; int main() { ifstream in("test.csv"); ofstream out1("test_split1.csv"); ofstream out2("test_split2.csv"); string line; char * pch; string line1,line2; int k=0; while(getline(in,line)){ line1=line2=""; k=0; pch = strtok((char*)line.c_str(),","); while(pch!=NULL) { printf("%s\n",pch); if(k==0||k==1||k==2){ line1+=pch; if(k!=2){ line1+=","; } } if(k==0||k==3){ line2+=pch; if(k!=3){ line2+=","; } } pch = strtok (NULL, ","); k++; } out1<<line1<<"\n"; out2<<line2<<"\n"; } return 0; }
公有成员public member 在程序的任何地方都可以被访问实行信息隐藏的类将其public 成员限制在成员函数上这种函数定义了可以被一般程序用来操纵该类类型对象的操作私有成员private member 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private。
被保护成员protected member 对派生类derived class 就像 public 成员一样对其他程序则表现得像private。
在类的private:节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数和友元访问。
在类的protected: 节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数,友元以及子类的成员函数和友元访问。
在类的public:节中声明的成员(无论数据成员或是成员函数)能被任何人访问。
public、private或proteced,它们控制变量成员和成员函数在类内和类外如何访问。所谓类内访问是指用类的成员函数进行访问,而类外访问是指用对象或指向对象的指针进行访问。
当一个类的成员定义为public,就能够在类外访问,包括它的派生类。
当一个成员定义为private,它仅能在类内访问,不能被它的派生类访问。
当一个成员定义为proteced,它仅能在类内访问,但是能被它的派生类访问。
当一个成员没有指定访问说明符时,默认为private。
在定义派生类时,访问说明符也能出现在基类的前面,它控制基类的变量成员和成员函数在派生类中的访问方法。当访问说明符为public时,称为公有继承。同样地,当问说明符为protected时,称为保护继承,而当问说明符为private时,称为私有继承。
公有继承时,基类的公有成员,变为派生类的公有成员,基类的保护成员,变为派生类的保护成员。
保护继承时,基类的公有和保护成员,均变为派生类的保护成员。
私有继承时,基类的公有和保护成员,均变为派生类的私有成员。
文件读写例子:
写:
#include <stdio.h> #include <string.h> int main() { FILE * fp = fopen("./tmp", "w"); int a = 1000; char str[100]; strcpy(str, "Hello World!"); char c = 001; fwrite(&a, sizeof(int), 1, fp); fwrite(&c, sizeof(char), 1, fp); fwrite(str, sizeof(char), strlen(str), fp); printf("Begin Read!\n"); /*close(fp); fp = fopen("./tmp", "r"); int ra; char rstr[100]; char rc; fread(&ra, sizeof(int), 1, fp); fread(&rc, sizeof(char), 1, fp); fread(rstr, sizeof(char), 100, fp); printf("%d\n%c\n%s\n", ra, rc, rstr); */ return 0; }
读:
#include <stdio.h> int main() { FILE *fp = fopen("./tmp", "r"); int ra; char rstr[100]; char rc; fread(&ra, sizeof(int), 1, fp); fread(&rc, sizeof(char), 1, fp); fread(rstr, sizeof(char), 100, fp); printf("%d\n%d\n%s\n", ra, (int)rc, rstr); //printf("%d\n", ra); return 0; }
http://www.cnblogs.com/jiezhuang/archive/2004/11/15/64019.html
#include <stdio.h> #include <string.h> int main() { FILE * fp = fopen("./tmp", "wb"); int a = 1000; char str[100]; strcpy(str, "Hello World!"); char c = 98; char d = 99; char e = 100; char f = 101; int aa = c*(1<<24) + d*(1<<16) + e*(1<<8) + f; printf("%d\n", aa); fwrite(&aa, sizeof(int), 1, fp); //fwrite(&c, sizeof(char), 1, fp); //fwrite(str, sizeof(char), strlen(str), fp); printf("Begin Read!\n"); /*close(fp); fp = fopen("./tmp", "r"); int ra; char rstr[100]; char rc; fread(&ra, sizeof(int), 1, fp); fread(&rc, sizeof(char), 1, fp); fread(rstr, sizeof(char), 100, fp); printf("%d\n%c\n%s\n", ra, rc, rstr); */ return 0; }
troubleshutting
glibc detected: http://blog.csdn.net/wallacexiang/article/details/4306268