1. 程式人生 > >c++的ifstream和ofstream讀寫類物件

c++的ifstream和ofstream讀寫類物件

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class Student
{
public:
	//有元宣告最後放在public裡面,不知道為啥
	friend istream& operator>>(istream&is, Student&st);
	friend ostream& operator<<(ostream&os, const Student&st);

	Student() = default;
	Student(string na, int sc)
	{
		name = na;
		score = sc;
	}
	~Student() = default;

private:
	string name;
	int score;
};

istream& operator>>(istream&is, Student&st)//ifstream是isream的子類,也能作為函式的引數
{
	is >> st.name;
	is>>st.score;
	return is;
}

ostream& operator<<(ostream&os, const Student&st)//ofstream是osream的子類,也能作為函式的引數
{
	os << st.name << " " << st.score << endl;
	return os;
}

int main()
{
     ////二進位制檔案操作

	//寫檔案
	//ofstream fout("student.dat",ios::binary);//能自動建立檔案
	//Student  s1("李明",100);
	//fout.write((char*)&s1,sizeof(s1));
	//fout.flush();
	//fout.close();

	//讀檔案
	//ifstream fin("student.dat",ios::binary);
	//Student  s2; 
	//fin.read((char*)&s2, sizeof(s2));
	//fin.close();


    ////文字檔案操作
	
	//寫檔案
    ofstream fout("student.txt");//能自動建立檔案
	Student  s1("李明", 100);
	fout << s1;
	fout.flush();
	fout.close();

	//讀檔案
    ifstream fin("student.txt");
	Student  s2;
	fin >> s2;
	fin.close();

	return 0;
}

C++的ifstream和ofstream讀寫二進位制檔案只能用read和write函式嗎?
用<<和>>即使指定了binary方式,也不能讀寫二進位制檔案

相關推薦

c++的ifstreamofstream物件

#include <iostream> #include <fstream> #include <string> using namespace std; class Student { public: //有元宣告最後放在publi

C++ 使用ifstreamofstream儲存包含string型別的時出現程式中斷

閒話少說,先看一段簡單的程式碼 #include <iostream> #include <string> #include <vector> #include <fstream> #include <sstream> #pragm

C++ ifstream,ofstream二進位制檔案

為什要吧資料存為二進位制這個嘛,是我個人習慣,一般,我們會把日誌檔案存為文字檔案。資料檔案存成二進位制檔案。其實,我們接觸的檔案,比如影象、視訊都是以二進位制的形式儲存的,要想檢視這類資料,必須知道資料是如何儲存的。不管你的資料型別是什麼,以二進位制形式儲存的時候,都可以把它

javaFileIO輸入輸出流中隨機RandomAccessFile的講解

今天來複習一下IO流的api, 在java中用io流來進行檔案的輸出和輸出操作,那麼首先類講解一下什麼是輸入和輸出: 所有往記憶體中送資料都是輸入 所有從記憶體出資料都是輸出 能用java.io包中的api操作的輸入輸出: 記憶體–>外存(硬碟,光碟,U盤) 本地流輸出

c++中使用指標呼叫函式使用指標呼叫物件的()過載函式

使用函式指標時,指標可以像函式名一樣,直接加括號和引數列表呼叫;也可先解引用再呼叫 //include directories... using namespace std; void testFun() { cout<<"this is

C++用new不用new建立物件區別

new建立類物件,使用完後需使用delete刪除,跟申請記憶體類似。所以,new有時候又不太適合,比如在頻繁呼叫場合,使用區域性new類物件就不是個好選擇,使用全域性類物件或一個經過初始化的全域性類指標似乎更加高效。 一、new建立類物件與不new區別 下面是自

C++】C++用new不用new建立物件區別

起初剛學C++時,很不習慣用new,後來看老外的程式,發現幾乎都是使用new,想一想區別也不是太大,但是在大一點的專案設計中,有時候不使用new的確會帶來很多問題。 當然這都是跟new的用法有關的。new建立類物件,使用完後需使用delete刪除,跟申請記憶體類似。所以

C++ 物件例項的區別,以及用new不用new建立物件區別

起初剛學C++時,很不習慣用new,後來看老外的程式,發現幾乎都是使用new,想一想區別也不是太大,但是在大一點的專案設計中,有時候不使用new的確會帶來很多問題。當然這都是跟new的用法有關的。new建立類物件,使用完後需使用delete刪除,跟申請記憶體類似。所以,n

C# 判斷檔案是否存在檔案

一、檔案是否存在 c#中操作IO非常簡單,下面介紹如何判斷資料夾或檔案是否存在的方法。  程式碼如下: //判斷資料夾是否存在,不存在則建立資料夾 if (!System.IO.Directory.Exists(@"E:\Files")) {    System.IO.D

C++用new不用new建立物件的區別

     起初剛學C++時,很不習慣用new,後來看老外的程式,發現幾乎都是使用new,想一想區別也不是太大,但是在大一點的專案設計中,有時候不使用new的確會帶來很多問題。當然這都是跟new的用法有關的。new建立類物件,使用完後需使用delete刪除,跟申請記憶

c語言中格式化函式fscanf()fprintf()

fscanf():從指定檔案中按指定格式讀入資料,並賦值給相應的變數 格式: fscanf(檔案指標,格式字串,輸出列表) e.g. fscanf(fp,"%d",&i) fscanf(fp,"%d %d",&

C++語言之用new不用new建立物件區別

起初剛學C++時,很不習慣用new,後來看老外的程式,發現幾乎都是使用new,想一想區別也不是太大,但是在大一點的專案設計中,有時候不使用new的確會帶來很多問題。當然這都是跟new的用法有關的。new建立類物件,使用完後需使用delete刪除,跟申請記憶體類似。所以,new有時候又不太適合,比如在頻繁呼

C++用new不用new建立物件

1,new建立類物件,使用完後需使用delete刪除,跟申請記憶體類似。所以,new有時候又不太適合,比如在頻繁呼叫場合,使用區域性new類物件就不是個好選擇,使用全域性類物件或一個經過初始化的全域性類指標似乎更加高效。 2,非new建立類物件,建立方式,new物件指標作為

C 文件隨機

stop eat 取出 指針 偏移 inpu fopen oid ont 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void eatline(){ 5 while(getc

python_py2py3文本區別

nbsp 編碼格式 需要 指定 nic 解碼 py3 bytes 寫入文件 python2和python3的區別? python 2 str    對應 python3 bytes python 2 uincod

C#創建、、增加、刪除XML操作

sch list sys 執行 參數 con out {0} return using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Thre

[Linux流操作]使用getsputs

linux流//使用fgets從標準輸入讀入一行數據 //然後使用fputs送標準輸出顯示 #include <stdio.h> #include <stdlib.h> #define MAXLINE 4096 //定義一行的最大字符長度 int main(int argc,

C# 中 NPOI 庫 Excel 文件的方法【摘】

prot case enter this num ack npoi 工作薄 解鎖 原作:淡水網誌 NPOI 是開源的 POI 項目的.NET版,可以用來讀寫Excel,Word,PPT文件。在處理Excel文件上,NPOI 可以同時兼容 xls 和 xlsx。官網提供了一份

freadfwritefeof二進制文件

name std 文本文件 數據 () write void tdi post #include <stdio.h> #include <stdlib.h> void text_to_bin(char *argv[]); void bin_to_

關於c++對文件的封裝

hfile value val style urn 兩種 pat pos write 1 namespace 2 { 3 UINT_T GetWriteSizeForNoBuf(UINT_T fsize) 4 { 5