中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

深圳學(xué)校網(wǎng)站建設(shè)報價北京疫情最新新聞

深圳學(xué)校網(wǎng)站建設(shè)報價,北京疫情最新新聞,榮昌區(qū)城鄉(xiāng)建設(shè)委員會網(wǎng)站,開網(wǎng)站做賭博賺錢嗎文章目錄 一、類型轉(zhuǎn)換C語言隱式類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換 C類型轉(zhuǎn)換的情況類型轉(zhuǎn)換的函數(shù)(4個) 二、IO流1、緩沖區(qū)2、提高輸入輸出效率3、文件操作文件權(quán)限寫操作 --- ofstream文本方式寫入二進(jìn)制方式寫入 讀操作 --- ifstream文本方式讀取二進(jìn)制方式讀取 其…

文章目錄

  • 一、類型轉(zhuǎn)換
    • C語言
      • 隱式類型轉(zhuǎn)換
      • 強(qiáng)制類型轉(zhuǎn)換
    • C++
      • 類型轉(zhuǎn)換的情況
      • 類型轉(zhuǎn)換的函數(shù)(4個)
  • 二、IO流
    • 1、緩沖區(qū)
    • 2、提高輸入輸出效率
    • 3、文件操作
      • 文件權(quán)限
      • 寫操作 --- ofstream
        • 文本方式寫入
        • 二進(jìn)制方式寫入
      • 讀操作 --- ifstream
        • 文本方式讀取
        • 二進(jìn)制方式讀取
      • 其他操作
        • 判斷文件是否成功打開?

一、類型轉(zhuǎn)換

當(dāng)兩個類型不是嚴(yán)格的相同的時候,就會有類型轉(zhuǎn)換的問題。

C語言

隱式類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。

隱式類型轉(zhuǎn)換

適用于類型相似的內(nèi)置類型(整型、浮點(diǎn)數(shù)、字符型)之間進(jìn)行類型轉(zhuǎn)化。比如:整型和字符型之間,整型和浮點(diǎn)數(shù)之間。

int a = 10;
double b = a; // 整型和浮點(diǎn)數(shù)之間
char c = a; // 整型和字符型之間

強(qiáng)制類型轉(zhuǎn)換

適用于整型和指針之間,指針和指針之間。

int a = 10;
int* pa = &a;
int b = (int)pa; // 整型和指針之間
double* pb = (double*)b; // 指針和指針之間

C++

類型轉(zhuǎn)換的情況

C++不僅僅兼容C的類型轉(zhuǎn)換,還有一些自定義類型之間的轉(zhuǎn)換。

內(nèi)置類型 -> 自定義類型

自定義類型 -> 內(nèi)置類型

自定義類型 -> 自定義類型

// 內(nèi)置類型轉(zhuǎn)換成自定義類型
// 通過構(gòu)造函數(shù)實(shí)現(xiàn)的
class A
{
private:int _a;int _b;
public:A(int a, int b):_a(a), _b(b){}
};
A a(1, 3);// 自定義類型轉(zhuǎn)換成內(nèi)置類型
// 通過get函數(shù),將A類型轉(zhuǎn)換成int
class A
{
private:int _a;int _b;
public:friend int get(A& a);A(int a, int b):_a(a), _b(b){}
};
int get(A& a)
{return a._a;
}// 自定義類型轉(zhuǎn)換成自定義類型
// 將子類賦值給父類,也可以通過構(gòu)造函數(shù)實(shí)現(xiàn),方法不唯一
class A
{
private:int _a;int _b;
public:A(int a = 1, int b = 1):_a(a), _b(b){}
};
class B:public A
{
private:int _c;
public:B(int c = 1):_c(c){}
};
B b;
A a = b;

類型轉(zhuǎn)換的函數(shù)(4個)

// 隱式類型轉(zhuǎn)換:static_cast<T>
int a = 10;
double b = 3.4;
a = static_cast<int>(b);
// 強(qiáng)制類型轉(zhuǎn)換:reinterpret<T>
int a = 10;
int* pa = &a;
int b = reinterpret_cast<int>(pa);
// const類型轉(zhuǎn)換:const_cast<T> --- 用于刪除變量的const屬性
const int x = 10;
int* px = const_cast<int*>(&x);
*px = 4;
std::cout << *px << std::endl;
// 向下轉(zhuǎn)換:dynamic_cast<T>(父類對象指針/引用 -> 子類指針/引用)
class A
{
public:virtual void print(){std::cout << "A: print()" << std::endl;}
};
class B : public A
{
public:virtual void print(){std::cout << "B: print()" << std::endl;}
};
A* a = new B;
B* b = dynamic_cast<B*>(a);
b->print();

二、IO流

1、緩沖區(qū)

輸入輸出是有緩沖區(qū)的概念的,根據(jù)Linux中學(xué)的一切皆文件,大概的也能明白(因?yàn)槲募锩嬗芯彌_區(qū))。

// 根據(jù)下面的代碼可以深刻的體會出緩沖區(qū)的概念。
// 一次性輸入10x
// 下面會直接輸出:
// 10
// x
// 我們只輸入的了一次,為什么會直接都輸出出來呢?
// 答:當(dāng)我們輸入10x的時候,第一次因?yàn)樽兞縜是int類型,他只讀到了10,然后就直接退出了,而x還在緩沖區(qū)中。當(dāng)緩沖區(qū)不空的時候,我們是沒有辦法繼續(xù)往里面進(jìn)行讀數(shù)據(jù)的,需要將其進(jìn)行接收。然后ch正好是字符類型,接收了x,所以最后會直接打印出來,而不需要我們輸入兩次。// 所以為了解決某種用戶輸入不正確的數(shù)據(jù)時,需要我們進(jìn)行判斷,然后對緩沖區(qū)進(jìn)行清空,以便不影響下一次輸入。
#include <iostream>
int main()
{int a = 0;std::cin >> a;std::cout << a << std::endl;char ch = 0;std::cin >> ch;std::cout << ch << std::endl;return 0;
}

2、提高輸入輸出效率

// 第一種方式:--- 用C語言的輸入輸出
//printf
//scanf// 第二種方式 --- C++
// 在main函數(shù)中加入這三句語句,一個main函數(shù)只需要寫一次
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);

3、文件操作

進(jìn)行文件操作的時候只需要包含fstream即可。

下面是文件頭文件的結(jié)構(gòu)圖。

image-20240820195456482

文件權(quán)限

  1. ios::in:以輸入(讀取)模式打開文件。
  2. ios::out:以輸出(寫入)模式打開文件。
  3. ios::app:以追加模式打開文件,寫入的數(shù)據(jù)會追加到文件末尾。
  4. ios::ate:打開文件時,立即將文件指針移動到文件末尾。
  5. ios::trunc:如果文件已存在,打開時清空文件內(nèi)容。
  6. ios::binary:以二進(jìn)制模式打開文件,而不是默認(rèn)的文本模式。

寫操作 — ofstream

文本方式寫入
#include <iostream>
#include <fstream>int main()
{// 以文本方式打開文件(如果默認(rèn)路徑下沒有文件,則新建文件)、// 默認(rèn)的權(quán)限是ios::out// std::ofstream fout("test.txt", std::ios::out); --- 以寫的方式打開文件// std::ofstream fout("test.txt", std::ios::out | std::ios::app); --- 以追加模式的寫的方式打開文件// ...std::ofstream fout("test.txt");// 文本輸入fout << "12434\n";fout << "abcdefg";fout << "hijk";// 關(guān)閉文件fout.close(); return 0;
}
二進(jìn)制方式寫入
#include <iostream>
#include <string>
#include <fstream>
#include <vector>int main()
{std::vector<int> v = { 1, 2, 3, 4 };// 打開文件,以寫的方式std::ofstream fout("test.txt", std::ios::out | std::ios::binary);// 寫入文件// ostream& write (const char* s, streamsize n);for (auto& e : v){fout.write(reinterpret_cast<char*>(&e), sizeof(e));}// 關(guān)閉文件fout.close();return 0;
}

讀操作 — ifstream

文本方式讀取
#include <iostream>
#include <string>
#include <fstream>int main()
{// 打開文件,以讀的方式std::ifstream fin("test.txt");// 讀取文件std::string tmp;while (fin >> tmp){std::cout << tmp << std::endl;}// 關(guān)閉文件fin.close();return 0;
}
二進(jìn)制方式讀取
// 以什么方式寫,就以什么方式讀
// 也要注意數(shù)據(jù)的格式,如果是整型就整形方式讀,自定義類型就自定義類型方式讀
#include <iostream>
#include <string>
#include <fstream>
#include <vector>int main()
{// 打開文件,以讀的方式std::ifstream fin("test.txt", std::ios::in | std::ios::binary);// 讀取文件char ch;while (fin.read(&ch, sizeof(ch))){std::cout << ch;}if (fin.good()){std::cout << "讀取成功" << std::endl;}// 關(guān)閉文件fin.close();return 0;
}

image-20240820220212954

其他操作

判斷文件是否成功打開?
#include <iostream>
#include <string>
#include <fstream>
#include <vector>int main()
{// 打開文件,以讀的方式std::ifstream fin("test.txt", std::ios::in | std::ios::binary);// 判斷是否成功打開文件if (!fin){std::cout << "無法打開文件!" << std::endl;return 1;}// 關(guān)閉文件fin.close();return 0;
}

謝謝大家!

http://www.risenshineclean.com/news/6418.html

相關(guān)文章:

  • 政府網(wǎng)站規(guī)范化建設(shè)廣告關(guān)鍵詞有哪些
  • 攜程做旅游的網(wǎng)站商城系統(tǒng)開發(fā)
  • 網(wǎng)站建設(shè)服務(wù)流程優(yōu)化網(wǎng)站結(jié)構(gòu)一般包括
  • 做礦業(yè)的鄭州公司網(wǎng)站網(wǎng)站流量排名查詢工具
  • 做藝人資料卡的網(wǎng)站廣告策劃書
  • 關(guān)鍵詞排名優(yōu)化網(wǎng)站建設(shè)公司哪家好網(wǎng)站外鏈發(fā)布平臺
  • 做美女圖片網(wǎng)站犯法嗎廣告聯(lián)盟大全
  • 臨海大經(jīng)建設(shè)集團(tuán)網(wǎng)站網(wǎng)站怎么做
  • wordpress下載seo含義
  • 杭州下沙做網(wǎng)站的論壇網(wǎng)站建設(shè)全包
  • 網(wǎng)站開發(fā)合同范本下載google網(wǎng)頁版登錄入口
  • 企業(yè)建站公司電話百度關(guān)鍵詞快排
  • 用ps做網(wǎng)站頁面seo查詢 站長工具
  • 大型網(wǎng)絡(luò)游戲排行榜2021前十名湖南專業(yè)關(guān)鍵詞優(yōu)化服務(wù)水平
  • 網(wǎng)站ui設(shè)計包括哪些原則谷歌seo 外貿(mào)建站
  • 怎么自建導(dǎo)購網(wǎng)站做淘客公司seo排名優(yōu)化
  • 網(wǎng)站開發(fā)語言 微信接口百度快照優(yōu)化培訓(xùn)班
  • 河北省建設(shè)執(zhí)業(yè)資格中心網(wǎng)站網(wǎng)絡(luò)營銷推廣技巧
  • 西充縣住房和城鄉(xiāng)規(guī)劃建設(shè)局網(wǎng)站google網(wǎng)站增加關(guān)鍵詞
  • 哪些網(wǎng)站是做b2b的網(wǎng)站維護(hù)一年一般多少錢?
  • 網(wǎng)站建設(shè)容易嗎seo自媒體培訓(xùn)
  • 連云港做網(wǎng)站最好惠州網(wǎng)站制作推廣
  • 專做海島游的網(wǎng)站如何交換友情鏈接
  • 網(wǎng)站建設(shè)設(shè)計解決方案網(wǎng)推拉新app推廣接單平臺
  • 電腦版qq在線登錄網(wǎng)頁入口百度地圖關(guān)鍵詞排名優(yōu)化
  • 南昌自助建站模板今天上海最新新聞事件
  • 網(wǎng)站 建設(shè) 成品小程序開發(fā)平臺官網(wǎng)
  • hbuilder做網(wǎng)站頁面背景色鄭州seo公司哪家好
  • 58同城煙臺網(wǎng)站建設(shè)肇慶網(wǎng)站推廣排名
  • 建英語網(wǎng)站第一推廣網(wǎng)