C++文件读取与写入

头文件

fstream  // 文件流
ifstream  // 输入文件流
ofstream  // 输出文件流

文件打开方式

ios::app:以追加的方式打开文件
ios::ate:文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary:以二进制方式打开文件,缺省的方式是文本方式
ios::in:文件以输入方式打开(文件数据输入到内存)
ios::out:文件以输出方式打开(内存数据输出到文件)
ios::nocreate:不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc:如果文件存在,把文件长度设为0

文件写入(不追加,覆盖原文件)

    //1、创建流对象
	fstream fs; //可输入输出
	//2、指定打开方式
	fs.open("test_A.txt", ios::out);
	//3、文件写入
	fs<<"abc"<<123;
	fs.close();

2、文件写入(追加,在原文件末尾写入)

    //1、创建流对象
	fstream fs; //可输入输出
	//2、指定打开方式
	fs.open("test_A.txt", ios::out|ios::app);
	//3、文件写入
	fs<<"abc"<<123;
	fs.close();

3、文件读取

    //1、创建流对象
	fstream fs; //可输入输出
	//2、指定打开方式
	fs.open("test_A.txt", ios::in);
	//3、文件读取(前面是字符串,后面是数字)
	String s; 
	int num;
	while(fs>>s>>num) //文件读取至末尾
	{
	    cout<<s<<"  "<<num<<endl;
	}
	fs.close();

4、文件读取(按行读取)

    //1、创建流对象
	fstream fs; //可输入输出
	//2、指定打开方式
	fs.open("test_A.txt", ios::in);
	//3、文件读取(前面是字符串,后面是数字)
	String line;
	while(getline(fs, line)) //文件读取一行,并按分隔符进行处理
	{
	    //"123,456,789"
	    int i1 = line.find(",");
		int i2 = line.find(",",len1+1);
		String s1 = line.substr(0,i1);
		String s2 = line.substr(i1+1,i2-i1-1);
		String s3 = line.substr(i2+1);
		//字符串转数字
		double d1 = my_atod(s1);
		double d2 = my_atod(s2);
		double d3 = my_atod(s3);
		cout<<d1<<"  "<<d2<<"  "<<d3<<endl;
	}
	fs.close();

    //包含头文件 #include
	double my_atod(string tempString)
	{
	    double result;
	    stringstream ss;
	    ss << tempString;
	    ss >> result;
	    return result;
	}

你可能感兴趣的:(C++,ios,objective-c,xcode)