[{"data":1,"prerenderedAt":1908},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo":1479,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo":1892,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo":1907},{"id":4,"title":5,"body":6,"canonicalPath":1461,"chapter":1462,"chapterSort":1463,"date":1464,"description":208,"docI18nKey":1465,"docKey":1466,"docRoot":1467,"docTitle":1468,"extension":1469,"i18nKey":1470,"isBlogPost":1471,"isWikiDoc":229,"isWikiIndex":1471,"layout":1472,"legacyPath":1473,"locale":1474,"localeSlug":1475,"meta":1476,"navigation":229,"path":1461,"seo":1477,"sourcePath":1473,"sourceStem":1470,"stem":1470,"wikiDepth":215,"__hash__":1478},"content/wiki/2023-10-05-Cplusplus教学/ch14-文件操作.md","文件操作",{"type":7,"value":8,"toc":1455},"minimark",[9,12,16,23,26,29,53,56,67,70,74,77,113,116,184,190,197,202,425,435,438,456,459,462,465,493,497,844,849,851,862,864,867,870,873,876,882,885,889,1163,1169,1171,1176,1179,1182,1188,1190,1192,1442,1446,1451],[10,11,5],"h2",{"id":5},[13,14,15],"p",{},"程序运行时产生的数据都属于临时数据，程序一旦运行结束都会被释放",[13,17,18,19],{},"通过",[20,21,22],"strong",{},"文件可以将数据持久化",[13,24,25],{},"C++中对文件操作需要包含头文件 ==\u003C fstream >==",[13,27,28],{},"文件类型分为两种：",[30,31,32,43],"ol",{},[33,34,35,38,39,42],"li",{},[20,36,37],{},"文本文件","     -  文件以文本的",[20,40,41],{},"ASCII码","形式存储在计算机中",[33,44,45,48,49,52],{},[20,46,47],{},"二进制文件"," -  文件以文本的",[20,50,51],{},"二进制","形式存储在计算机中，用户一般不能直接读懂它们",[13,54,55],{},"操作文件的三大类:",[30,57,58,61,64],{},[33,59,60],{},"ofstream：写操作",[33,62,63],{},"ifstream： 读操作",[33,65,66],{},"fstream ： 读写操作",[68,69,37],"h3",{"id":37},[71,72,73],"h4",{"id":73},"写文件",[13,75,76],{},"写文件步骤如下：",[30,78,79,86,92,98,104],{},[33,80,81,82,85],{},"包含头文件",[83,84],"br",{},"#include \u003Cfstream>",[33,87,88,89,91],{},"创建流对象",[83,90],{},"ofstream ofs;",[33,93,94,95,97],{},"打开文件",[83,96],{},"ofs.open(\"文件路径\",打开方式);",[33,99,100,101,103],{},"写数据",[83,102],{},"ofs \u003C\u003C \"写入的数据\";",[33,105,106,107,109,110,112],{},"关闭文件",[83,108],{},"ofs.close();",[83,111],{},"​",[13,114,115],{},"文件打开方式：",[117,118,119,132],"table",{},[120,121,122],"thead",{},[123,124,125,129],"tr",{},[126,127,128],"th",{},"打开方式",[126,130,131],{},"解释",[133,134,135,144,152,160,168,176],"tbody",{},[123,136,137,141],{},[138,139,140],"td",{},"ios::in",[138,142,143],{},"为读文件而打开文件",[123,145,146,149],{},[138,147,148],{},"ios::out",[138,150,151],{},"为写文件而打开文件",[123,153,154,157],{},[138,155,156],{},"ios::ate",[138,158,159],{},"初始位置：文件尾",[123,161,162,165],{},[138,163,164],{},"ios::app",[138,166,167],{},"追加方式写文件",[123,169,170,173],{},[138,171,172],{},"ios::trunc",[138,174,175],{},"如果文件存在先删除，再创建",[123,177,178,181],{},[138,179,180],{},"ios::binary",[138,182,183],{},"二进制方式",[13,185,186,189],{},[20,187,188],{},"注意："," 文件打开方式可以配合使用，利用|操作符",[13,191,192,193],{},"**例如：**用二进制方式写文件 ",[194,195,196],"code",{},"ios::binary |  ios:: out",[13,198,199],{},[20,200,201],{},"示例：",[203,204,209],"pre",{"className":205,"code":206,"language":207,"meta":208,"style":208},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Cfstream>\n\nvoid test01()\n{\n    ofstream ofs;\n    ofs.open(\"test.txt\", ios::out);\n\n    ofs \u003C\u003C \"姓名：张三\" \u003C\u003C endl;\n    ofs \u003C\u003C \"性别：男\" \u003C\u003C endl;\n    ofs \u003C\u003C \"年龄：18\" \u003C\u003C endl;\n\n    ofs.close();\n}\n\nint main() {\n    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n\n    test01();\n\n\n    // 返回 0 表示程序正常结束。\n    return 0;\n}\n","cpp","",[194,210,211,224,231,245,251,257,281,286,304,318,332,337,348,354,359,371,378,383,391,396,401,407,420],{"__ignoreMap":208},[212,213,216,220],"span",{"class":214,"line":215},"line",1,[212,217,219],{"class":218},"szBVR","#include",[212,221,223],{"class":222},"sZZnC"," \u003Cfstream>\n",[212,225,227],{"class":214,"line":226},2,[212,228,230],{"emptyLinePlaceholder":229},true,"\n",[212,232,234,237,241],{"class":214,"line":233},3,[212,235,236],{"class":218},"void",[212,238,240],{"class":239},"sScJk"," test01",[212,242,244],{"class":243},"sVt8B","()\n",[212,246,248],{"class":214,"line":247},4,[212,249,250],{"class":243},"{\n",[212,252,254],{"class":214,"line":253},5,[212,255,256],{"class":243},"    ofstream ofs;\n",[212,258,260,263,266,269,272,275,278],{"class":214,"line":259},6,[212,261,262],{"class":243},"    ofs.",[212,264,265],{"class":239},"open",[212,267,268],{"class":243},"(",[212,270,271],{"class":222},"\"test.txt\"",[212,273,274],{"class":243},", ",[212,276,277],{"class":239},"ios",[212,279,280],{"class":243},"::out);\n",[212,282,284],{"class":214,"line":283},7,[212,285,230],{"emptyLinePlaceholder":229},[212,287,289,292,295,298,301],{"class":214,"line":288},8,[212,290,291],{"class":243},"    ofs ",[212,293,294],{"class":218},"\u003C\u003C",[212,296,297],{"class":222}," \"姓名：张三\"",[212,299,300],{"class":218}," \u003C\u003C",[212,302,303],{"class":243}," endl;\n",[212,305,307,309,311,314,316],{"class":214,"line":306},9,[212,308,291],{"class":243},[212,310,294],{"class":218},[212,312,313],{"class":222}," \"性别：男\"",[212,315,300],{"class":218},[212,317,303],{"class":243},[212,319,321,323,325,328,330],{"class":214,"line":320},10,[212,322,291],{"class":243},[212,324,294],{"class":218},[212,326,327],{"class":222}," \"年龄：18\"",[212,329,300],{"class":218},[212,331,303],{"class":243},[212,333,335],{"class":214,"line":334},11,[212,336,230],{"emptyLinePlaceholder":229},[212,338,340,342,345],{"class":214,"line":339},12,[212,341,262],{"class":243},[212,343,344],{"class":239},"close",[212,346,347],{"class":243},"();\n",[212,349,351],{"class":214,"line":350},13,[212,352,353],{"class":243},"}\n",[212,355,357],{"class":214,"line":356},14,[212,358,230],{"emptyLinePlaceholder":229},[212,360,362,365,368],{"class":214,"line":361},15,[212,363,364],{"class":218},"int",[212,366,367],{"class":239}," main",[212,369,370],{"class":243},"() {\n",[212,372,374],{"class":214,"line":373},16,[212,375,377],{"class":376},"sJ8bj","    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[212,379,381],{"class":214,"line":380},17,[212,382,230],{"emptyLinePlaceholder":229},[212,384,386,389],{"class":214,"line":385},18,[212,387,388],{"class":239},"    test01",[212,390,347],{"class":243},[212,392,394],{"class":214,"line":393},19,[212,395,230],{"emptyLinePlaceholder":229},[212,397,399],{"class":214,"line":398},20,[212,400,230],{"emptyLinePlaceholder":229},[212,402,404],{"class":214,"line":403},21,[212,405,406],{"class":376},"    // 返回 0 表示程序正常结束。\n",[212,408,410,413,417],{"class":214,"line":409},22,[212,411,412],{"class":218},"    return",[212,414,416],{"class":415},"sj4cs"," 0",[212,418,419],{"class":243},";\n",[212,421,423],{"class":214,"line":422},23,[212,424,353],{"class":243},[13,426,427,430,431,434],{},[20,428,429],{},"运行/观察结果："," 运行后会在当前工作目录写入示例文件，可用 ",[194,432,433],{},"cat 文件名"," 查看写入内容。",[13,436,437],{},"总结：",[439,440,441,444,447,450,453],"ul",{},[33,442,443],{},"文件操作必须包含头文件 fstream",[33,445,446],{},"读文件可以利用 ofstream  ，或者fstream类",[33,448,449],{},"打开文件时候需要指定操作文件的路径，以及打开方式",[33,451,452],{},"利用\u003C\u003C可以向文件中写数据",[33,454,455],{},"操作完毕，要关闭文件",[71,457,458],{"id":458},"读文件",[13,460,461],{},"读文件与写文件步骤相似，但是读取方式相对于比较多",[13,463,464],{},"读文件步骤如下：",[30,466,467,471,476,482,488],{},[33,468,81,469,85],{},[83,470],{},[33,472,88,473,475],{},[83,474],{},"ifstream ifs;",[33,477,478,479,481],{},"打开文件并判断文件是否打开成功",[83,480],{},"ifs.open(\"文件路径\",打开方式);",[33,483,484,485,487],{},"读数据",[83,486],{},"四种方式读取",[33,489,106,490,492],{},[83,491],{},"ifs.close();",[13,494,495],{},[20,496,201],{},[203,498,500],{"className":205,"code":499,"language":207,"meta":208,"style":208},"#include \u003Cfstream>\n#include \u003Cstring>\nvoid test01()\n{\n    ifstream ifs;\n    ifs.open(\"test.txt\", ios::in);\n\n    if (!ifs.is_open())\n    {\n        cout \u003C\u003C \"文件打开失败\" \u003C\u003C endl;\n        return;\n    }\n\n    //第一种方式\n    //char buf[1024] = { 0 };\n    //while (ifs >> buf)\n    //{\n    //  cout \u003C\u003C buf \u003C\u003C endl;\n    //}\n\n    //第二种\n    //char buf[1024] = { 0 };\n    //while (ifs.getline(buf,sizeof(buf)))\n    //{\n    //  cout \u003C\u003C buf \u003C\u003C endl;\n    //}\n\n    //第三种\n    //string buf;\n    //while (getline(ifs, buf))\n    //{\n    //  cout \u003C\u003C buf \u003C\u003C endl;\n    //}\n\n    char c;\n    while ((c = ifs.get()) != EOF)\n    {\n        cout \u003C\u003C c;\n    }\n\n    ifs.close();\n\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[194,501,502,508,515,523,527,532,550,554,574,579,593,600,605,609,614,619,624,629,634,639,643,648,652,657,662,667,672,677,683,689,695,700,705,710,715,724,751,756,765,770,775,784,789,794,799,808,813,820,825,830,839],{"__ignoreMap":208},[212,503,504,506],{"class":214,"line":215},[212,505,219],{"class":218},[212,507,223],{"class":222},[212,509,510,512],{"class":214,"line":226},[212,511,219],{"class":218},[212,513,514],{"class":222}," \u003Cstring>\n",[212,516,517,519,521],{"class":214,"line":233},[212,518,236],{"class":218},[212,520,240],{"class":239},[212,522,244],{"class":243},[212,524,525],{"class":214,"line":247},[212,526,250],{"class":243},[212,528,529],{"class":214,"line":253},[212,530,531],{"class":243},"    ifstream ifs;\n",[212,533,534,537,539,541,543,545,547],{"class":214,"line":259},[212,535,536],{"class":243},"    ifs.",[212,538,265],{"class":239},[212,540,268],{"class":243},[212,542,271],{"class":222},[212,544,274],{"class":243},[212,546,277],{"class":239},[212,548,549],{"class":243},"::in);\n",[212,551,552],{"class":214,"line":283},[212,553,230],{"emptyLinePlaceholder":229},[212,555,556,559,562,565,568,571],{"class":214,"line":288},[212,557,558],{"class":218},"    if",[212,560,561],{"class":243}," (",[212,563,564],{"class":218},"!",[212,566,567],{"class":243},"ifs.",[212,569,570],{"class":239},"is_open",[212,572,573],{"class":243},"())\n",[212,575,576],{"class":214,"line":306},[212,577,578],{"class":243},"    {\n",[212,580,581,584,586,589,591],{"class":214,"line":320},[212,582,583],{"class":243},"        cout ",[212,585,294],{"class":218},[212,587,588],{"class":222}," \"文件打开失败\"",[212,590,300],{"class":218},[212,592,303],{"class":243},[212,594,595,598],{"class":214,"line":334},[212,596,597],{"class":218},"        return",[212,599,419],{"class":243},[212,601,602],{"class":214,"line":339},[212,603,604],{"class":243},"    }\n",[212,606,607],{"class":214,"line":350},[212,608,230],{"emptyLinePlaceholder":229},[212,610,611],{"class":214,"line":356},[212,612,613],{"class":376},"    //第一种方式\n",[212,615,616],{"class":214,"line":361},[212,617,618],{"class":376},"    //char buf[1024] = { 0 };\n",[212,620,621],{"class":214,"line":373},[212,622,623],{"class":376},"    //while (ifs >> buf)\n",[212,625,626],{"class":214,"line":380},[212,627,628],{"class":376},"    //{\n",[212,630,631],{"class":214,"line":385},[212,632,633],{"class":376},"    //  cout \u003C\u003C buf \u003C\u003C endl;\n",[212,635,636],{"class":214,"line":393},[212,637,638],{"class":376},"    //}\n",[212,640,641],{"class":214,"line":398},[212,642,230],{"emptyLinePlaceholder":229},[212,644,645],{"class":214,"line":403},[212,646,647],{"class":376},"    //第二种\n",[212,649,650],{"class":214,"line":409},[212,651,618],{"class":376},[212,653,654],{"class":214,"line":422},[212,655,656],{"class":376},"    //while (ifs.getline(buf,sizeof(buf)))\n",[212,658,660],{"class":214,"line":659},24,[212,661,628],{"class":376},[212,663,665],{"class":214,"line":664},25,[212,666,633],{"class":376},[212,668,670],{"class":214,"line":669},26,[212,671,638],{"class":376},[212,673,675],{"class":214,"line":674},27,[212,676,230],{"emptyLinePlaceholder":229},[212,678,680],{"class":214,"line":679},28,[212,681,682],{"class":376},"    //第三种\n",[212,684,686],{"class":214,"line":685},29,[212,687,688],{"class":376},"    //string buf;\n",[212,690,692],{"class":214,"line":691},30,[212,693,694],{"class":376},"    //while (getline(ifs, buf))\n",[212,696,698],{"class":214,"line":697},31,[212,699,628],{"class":376},[212,701,703],{"class":214,"line":702},32,[212,704,633],{"class":376},[212,706,708],{"class":214,"line":707},33,[212,709,638],{"class":376},[212,711,713],{"class":214,"line":712},34,[212,714,230],{"emptyLinePlaceholder":229},[212,716,718,721],{"class":214,"line":717},35,[212,719,720],{"class":218},"    char",[212,722,723],{"class":243}," c;\n",[212,725,727,730,733,736,739,742,745,748],{"class":214,"line":726},36,[212,728,729],{"class":218},"    while",[212,731,732],{"class":243}," ((c ",[212,734,735],{"class":218},"=",[212,737,738],{"class":243}," ifs.",[212,740,741],{"class":239},"get",[212,743,744],{"class":243},"()) ",[212,746,747],{"class":218},"!=",[212,749,750],{"class":243}," EOF)\n",[212,752,754],{"class":214,"line":753},37,[212,755,578],{"class":243},[212,757,759,761,763],{"class":214,"line":758},38,[212,760,583],{"class":243},[212,762,294],{"class":218},[212,764,723],{"class":243},[212,766,768],{"class":214,"line":767},39,[212,769,604],{"class":243},[212,771,773],{"class":214,"line":772},40,[212,774,230],{"emptyLinePlaceholder":229},[212,776,778,780,782],{"class":214,"line":777},41,[212,779,536],{"class":243},[212,781,344],{"class":239},[212,783,347],{"class":243},[212,785,787],{"class":214,"line":786},42,[212,788,230],{"emptyLinePlaceholder":229},[212,790,792],{"class":214,"line":791},43,[212,793,353],{"class":243},[212,795,797],{"class":214,"line":796},44,[212,798,230],{"emptyLinePlaceholder":229},[212,800,802,804,806],{"class":214,"line":801},45,[212,803,364],{"class":218},[212,805,367],{"class":239},[212,807,370],{"class":243},[212,809,811],{"class":214,"line":810},46,[212,812,230],{"emptyLinePlaceholder":229},[212,814,816,818],{"class":214,"line":815},47,[212,817,388],{"class":239},[212,819,347],{"class":243},[212,821,823],{"class":214,"line":822},48,[212,824,230],{"emptyLinePlaceholder":229},[212,826,828],{"class":214,"line":827},49,[212,829,230],{"emptyLinePlaceholder":229},[212,831,833,835,837],{"class":214,"line":832},50,[212,834,412],{"class":218},[212,836,416],{"class":415},[212,838,419],{"class":243},[212,840,842],{"class":214,"line":841},51,[212,843,353],{"class":243},[13,845,846,848],{},[20,847,429],{}," 运行前需要当前工作目录存在对应示例文件，程序会按读取逻辑打印文件内容或读取结果。",[13,850,437],{},[439,852,853,856,859],{},[33,854,855],{},"读文件可以利用 ifstream  ，或者fstream类",[33,857,858],{},"利用is_open函数可以判断文件是否打开成功",[33,860,861],{},"close 关闭文件",[68,863,47],{"id":47},[13,865,866],{},"以二进制的方式对文件进行读写操作",[13,868,869],{},"打开方式要指定为 ==ios::binary==",[71,871,73],{"id":872},"写文件-1",[13,874,875],{},"二进制方式写文件主要利用流对象调用成员函数write",[13,877,878,879],{},"函数原型 ：",[194,880,881],{},"ostream& write(const char * buffer,int len);",[13,883,884],{},"参数解释：字符指针buffer指向内存中一段存储空间。len是读写的字节数",[13,886,887],{},[20,888,201],{},[203,890,892],{"className":205,"code":891,"language":207,"meta":208,"style":208},"#include \u003Cfstream>\n#include \u003Cstring>\n\nclass Person\n{\npublic:\n    char m_Name[64];\n    int m_Age;\n};\n\n//二进制文件  写文件\nvoid test01()\n{\n    //1、包含头文件\n\n    //2、创建输出流对象\n    ofstream ofs(\"person.txt\", ios::out | ios::binary);\n    \n    //3、打开文件\n    //ofs.open(\"person.txt\", ios::out | ios::binary);\n\n    Person p = {\"张三\"  , 18};\n\n    //4、写文件\n    ofs.write((const char *)&p, sizeof(p));\n\n    //5、关闭文件\n    ofs.close();\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[194,893,894,900,906,910,918,922,927,940,948,953,957,962,970,974,979,983,988,1017,1022,1027,1032,1036,1057,1061,1066,1100,1104,1109,1117,1121,1125,1133,1137,1143,1147,1151,1159],{"__ignoreMap":208},[212,895,896,898],{"class":214,"line":215},[212,897,219],{"class":218},[212,899,223],{"class":222},[212,901,902,904],{"class":214,"line":226},[212,903,219],{"class":218},[212,905,514],{"class":222},[212,907,908],{"class":214,"line":233},[212,909,230],{"emptyLinePlaceholder":229},[212,911,912,915],{"class":214,"line":247},[212,913,914],{"class":218},"class",[212,916,917],{"class":239}," Person\n",[212,919,920],{"class":214,"line":253},[212,921,250],{"class":243},[212,923,924],{"class":214,"line":259},[212,925,926],{"class":218},"public:\n",[212,928,929,931,934,937],{"class":214,"line":283},[212,930,720],{"class":218},[212,932,933],{"class":243}," m_Name[",[212,935,936],{"class":415},"64",[212,938,939],{"class":243},"];\n",[212,941,942,945],{"class":214,"line":288},[212,943,944],{"class":218},"    int",[212,946,947],{"class":243}," m_Age;\n",[212,949,950],{"class":214,"line":306},[212,951,952],{"class":243},"};\n",[212,954,955],{"class":214,"line":320},[212,956,230],{"emptyLinePlaceholder":229},[212,958,959],{"class":214,"line":334},[212,960,961],{"class":376},"//二进制文件  写文件\n",[212,963,964,966,968],{"class":214,"line":339},[212,965,236],{"class":218},[212,967,240],{"class":239},[212,969,244],{"class":243},[212,971,972],{"class":214,"line":350},[212,973,250],{"class":243},[212,975,976],{"class":214,"line":356},[212,977,978],{"class":376},"    //1、包含头文件\n",[212,980,981],{"class":214,"line":361},[212,982,230],{"emptyLinePlaceholder":229},[212,984,985],{"class":214,"line":373},[212,986,987],{"class":376},"    //2、创建输出流对象\n",[212,989,990,993,996,998,1001,1003,1005,1008,1011,1014],{"class":214,"line":380},[212,991,992],{"class":243},"    ofstream ",[212,994,995],{"class":239},"ofs",[212,997,268],{"class":243},[212,999,1000],{"class":222},"\"person.txt\"",[212,1002,274],{"class":243},[212,1004,277],{"class":239},[212,1006,1007],{"class":243},"::out ",[212,1009,1010],{"class":218},"|",[212,1012,1013],{"class":239}," ios",[212,1015,1016],{"class":243},"::binary);\n",[212,1018,1019],{"class":214,"line":385},[212,1020,1021],{"class":243},"    \n",[212,1023,1024],{"class":214,"line":393},[212,1025,1026],{"class":376},"    //3、打开文件\n",[212,1028,1029],{"class":214,"line":398},[212,1030,1031],{"class":376},"    //ofs.open(\"person.txt\", ios::out | ios::binary);\n",[212,1033,1034],{"class":214,"line":403},[212,1035,230],{"emptyLinePlaceholder":229},[212,1037,1038,1041,1043,1046,1049,1052,1055],{"class":214,"line":409},[212,1039,1040],{"class":243},"    Person p ",[212,1042,735],{"class":218},[212,1044,1045],{"class":243}," {",[212,1047,1048],{"class":222},"\"张三\"",[212,1050,1051],{"class":243},"  , ",[212,1053,1054],{"class":415},"18",[212,1056,952],{"class":243},[212,1058,1059],{"class":214,"line":422},[212,1060,230],{"emptyLinePlaceholder":229},[212,1062,1063],{"class":214,"line":659},[212,1064,1065],{"class":376},"    //4、写文件\n",[212,1067,1068,1070,1073,1076,1079,1082,1085,1088,1091,1094,1097],{"class":214,"line":664},[212,1069,262],{"class":243},[212,1071,1072],{"class":239},"write",[212,1074,1075],{"class":243},"((",[212,1077,1078],{"class":218},"const",[212,1080,1081],{"class":218}," char",[212,1083,1084],{"class":218}," *",[212,1086,1087],{"class":243},")",[212,1089,1090],{"class":218},"&",[212,1092,1093],{"class":243},"p, ",[212,1095,1096],{"class":218},"sizeof",[212,1098,1099],{"class":243},"(p));\n",[212,1101,1102],{"class":214,"line":669},[212,1103,230],{"emptyLinePlaceholder":229},[212,1105,1106],{"class":214,"line":674},[212,1107,1108],{"class":376},"    //5、关闭文件\n",[212,1110,1111,1113,1115],{"class":214,"line":679},[212,1112,262],{"class":243},[212,1114,344],{"class":239},[212,1116,347],{"class":243},[212,1118,1119],{"class":214,"line":685},[212,1120,353],{"class":243},[212,1122,1123],{"class":214,"line":691},[212,1124,230],{"emptyLinePlaceholder":229},[212,1126,1127,1129,1131],{"class":214,"line":697},[212,1128,364],{"class":218},[212,1130,367],{"class":239},[212,1132,370],{"class":243},[212,1134,1135],{"class":214,"line":702},[212,1136,230],{"emptyLinePlaceholder":229},[212,1138,1139,1141],{"class":214,"line":707},[212,1140,388],{"class":239},[212,1142,347],{"class":243},[212,1144,1145],{"class":214,"line":712},[212,1146,230],{"emptyLinePlaceholder":229},[212,1148,1149],{"class":214,"line":717},[212,1150,230],{"emptyLinePlaceholder":229},[212,1152,1153,1155,1157],{"class":214,"line":726},[212,1154,412],{"class":218},[212,1156,416],{"class":415},[212,1158,419],{"class":243},[212,1160,1161],{"class":214,"line":753},[212,1162,353],{"class":243},[13,1164,1165,430,1167,434],{},[20,1166,429],{},[194,1168,433],{},[13,1170,437],{},[439,1172,1173],{},[33,1174,1175],{},"文件输出流对象 可以通过write函数，以二进制方式写数据",[71,1177,458],{"id":1178},"读文件-1",[13,1180,1181],{},"二进制方式读文件主要利用流对象调用成员函数read",[13,1183,1184,1185],{},"函数原型：",[194,1186,1187],{},"istream& read(char *buffer,int len);",[13,1189,884],{},[13,1191,201],{},[203,1193,1195],{"className":205,"code":1194,"language":207,"meta":208,"style":208},"#include \u003Cfstream>\n#include \u003Cstring>\n\nclass Person\n{\npublic:\n    char m_Name[64];\n    int m_Age;\n};\n\nvoid test01()\n{\n    ifstream ifs(\"person.txt\", ios::in | ios::binary);\n    if (!ifs.is_open())\n    {\n        cout \u003C\u003C \"文件打开失败\" \u003C\u003C endl;\n    }\n\n    Person p;\n    ifs.read((char *)&p, sizeof(p));\n\n    cout \u003C\u003C \"姓名： \" \u003C\u003C p.m_Name \u003C\u003C \" 年龄： \" \u003C\u003C p.m_Age \u003C\u003C endl;\n}\n\nint main() {\n    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n\n    test01();\n\n\n    // 返回 0 表示程序正常结束。\n    return 0;\n}\n",[194,1196,1197,1203,1209,1213,1219,1223,1227,1237,1243,1247,1251,1259,1263,1288,1302,1306,1318,1322,1326,1331,1355,1359,1388,1392,1396,1404,1408,1412,1418,1422,1426,1430,1438],{"__ignoreMap":208},[212,1198,1199,1201],{"class":214,"line":215},[212,1200,219],{"class":218},[212,1202,223],{"class":222},[212,1204,1205,1207],{"class":214,"line":226},[212,1206,219],{"class":218},[212,1208,514],{"class":222},[212,1210,1211],{"class":214,"line":233},[212,1212,230],{"emptyLinePlaceholder":229},[212,1214,1215,1217],{"class":214,"line":247},[212,1216,914],{"class":218},[212,1218,917],{"class":239},[212,1220,1221],{"class":214,"line":253},[212,1222,250],{"class":243},[212,1224,1225],{"class":214,"line":259},[212,1226,926],{"class":218},[212,1228,1229,1231,1233,1235],{"class":214,"line":283},[212,1230,720],{"class":218},[212,1232,933],{"class":243},[212,1234,936],{"class":415},[212,1236,939],{"class":243},[212,1238,1239,1241],{"class":214,"line":288},[212,1240,944],{"class":218},[212,1242,947],{"class":243},[212,1244,1245],{"class":214,"line":306},[212,1246,952],{"class":243},[212,1248,1249],{"class":214,"line":320},[212,1250,230],{"emptyLinePlaceholder":229},[212,1252,1253,1255,1257],{"class":214,"line":334},[212,1254,236],{"class":218},[212,1256,240],{"class":239},[212,1258,244],{"class":243},[212,1260,1261],{"class":214,"line":339},[212,1262,250],{"class":243},[212,1264,1265,1268,1271,1273,1275,1277,1279,1282,1284,1286],{"class":214,"line":350},[212,1266,1267],{"class":243},"    ifstream ",[212,1269,1270],{"class":239},"ifs",[212,1272,268],{"class":243},[212,1274,1000],{"class":222},[212,1276,274],{"class":243},[212,1278,277],{"class":239},[212,1280,1281],{"class":243},"::in ",[212,1283,1010],{"class":218},[212,1285,1013],{"class":239},[212,1287,1016],{"class":243},[212,1289,1290,1292,1294,1296,1298,1300],{"class":214,"line":356},[212,1291,558],{"class":218},[212,1293,561],{"class":243},[212,1295,564],{"class":218},[212,1297,567],{"class":243},[212,1299,570],{"class":239},[212,1301,573],{"class":243},[212,1303,1304],{"class":214,"line":361},[212,1305,578],{"class":243},[212,1307,1308,1310,1312,1314,1316],{"class":214,"line":373},[212,1309,583],{"class":243},[212,1311,294],{"class":218},[212,1313,588],{"class":222},[212,1315,300],{"class":218},[212,1317,303],{"class":243},[212,1319,1320],{"class":214,"line":380},[212,1321,604],{"class":243},[212,1323,1324],{"class":214,"line":385},[212,1325,230],{"emptyLinePlaceholder":229},[212,1327,1328],{"class":214,"line":393},[212,1329,1330],{"class":243},"    Person p;\n",[212,1332,1333,1335,1338,1340,1343,1345,1347,1349,1351,1353],{"class":214,"line":398},[212,1334,536],{"class":243},[212,1336,1337],{"class":239},"read",[212,1339,1075],{"class":243},[212,1341,1342],{"class":218},"char",[212,1344,1084],{"class":218},[212,1346,1087],{"class":243},[212,1348,1090],{"class":218},[212,1350,1093],{"class":243},[212,1352,1096],{"class":218},[212,1354,1099],{"class":243},[212,1356,1357],{"class":214,"line":403},[212,1358,230],{"emptyLinePlaceholder":229},[212,1360,1361,1364,1366,1369,1371,1374,1376,1379,1381,1384,1386],{"class":214,"line":409},[212,1362,1363],{"class":243},"    cout ",[212,1365,294],{"class":218},[212,1367,1368],{"class":222}," \"姓名： \"",[212,1370,300],{"class":218},[212,1372,1373],{"class":243}," p.m_Name ",[212,1375,294],{"class":218},[212,1377,1378],{"class":222}," \" 年龄： \"",[212,1380,300],{"class":218},[212,1382,1383],{"class":243}," p.m_Age ",[212,1385,294],{"class":218},[212,1387,303],{"class":243},[212,1389,1390],{"class":214,"line":422},[212,1391,353],{"class":243},[212,1393,1394],{"class":214,"line":659},[212,1395,230],{"emptyLinePlaceholder":229},[212,1397,1398,1400,1402],{"class":214,"line":664},[212,1399,364],{"class":218},[212,1401,367],{"class":239},[212,1403,370],{"class":243},[212,1405,1406],{"class":214,"line":669},[212,1407,377],{"class":376},[212,1409,1410],{"class":214,"line":674},[212,1411,230],{"emptyLinePlaceholder":229},[212,1413,1414,1416],{"class":214,"line":679},[212,1415,388],{"class":239},[212,1417,347],{"class":243},[212,1419,1420],{"class":214,"line":685},[212,1421,230],{"emptyLinePlaceholder":229},[212,1423,1424],{"class":214,"line":691},[212,1425,230],{"emptyLinePlaceholder":229},[212,1427,1428],{"class":214,"line":697},[212,1429,406],{"class":376},[212,1431,1432,1434,1436],{"class":214,"line":702},[212,1433,412],{"class":218},[212,1435,416],{"class":415},[212,1437,419],{"class":243},[212,1439,1440],{"class":214,"line":707},[212,1441,353],{"class":243},[13,1443,1444,848],{},[20,1445,429],{},[439,1447,1448],{},[33,1449,1450],{},"文件输入流对象 可以通过read函数，以二进制方式读数据",[1452,1453,1454],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":208,"searchDepth":226,"depth":226,"links":1456},[1457],{"id":5,"depth":226,"text":5,"children":1458},[1459,1460],{"id":37,"depth":233,"text":37},{"id":47,"depth":233,"text":47},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","14",14000000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch14-文件操作",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","zh-CN","zh-cn",{},{"title":5,"description":208},"C01TUq9LXZDODqIC1A6FRIMLbci5ImL4l2n5ugHcICs",[1480,1486,1492,1498,1504,1510,1516,1522,1528,1534,1540,1546,1547,1553,1559,1565,1571,1577,1583,1589,1595,1601,1607,1613,1619,1625,1631,1637,1643,1649,1655,1661,1667,1673,1679,1685,1691,1697,1703,1709,1715,1721,1727,1733,1739,1745,1751,1757,1763,1768,1774,1780,1786,1792,1798,1804,1810,1816,1822,1828,1834,1840,1846,1852,1858,1864,1870,1876,1882,1888],{"path":1481,"stem":1482,"title":1483,"date":1464,"chapter":1484,"chapterSort":1485,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识","1",1000000,{"path":1487,"stem":1488,"title":1489,"date":1464,"chapter":1490,"chapterSort":1491,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期","10",10000000,{"path":1493,"stem":1494,"title":1495,"date":1464,"chapter":1496,"chapterSort":1497,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","wiki/2023-10-05-Cplusplus教学/ch11-引用","引用","11",11000000,{"path":1499,"stem":1500,"title":1501,"date":1464,"chapter":1502,"chapterSort":1503,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":1505,"stem":1506,"title":1507,"date":1464,"chapter":1508,"chapterSort":1509,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":1511,"stem":1512,"title":1513,"date":1464,"chapter":1514,"chapterSort":1515,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理","对象初始化和清理","13.2",13020000,{"path":1517,"stem":1518,"title":1519,"date":1464,"chapter":1520,"chapterSort":1521,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":1523,"stem":1524,"title":1525,"date":1464,"chapter":1526,"chapterSort":1527,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":1529,"stem":1530,"title":1531,"date":1464,"chapter":1532,"chapterSort":1533,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch13-5-继承","继承","13.5",13050000,{"path":1535,"stem":1536,"title":1537,"date":1464,"chapter":1538,"chapterSort":1539,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":1541,"stem":1542,"title":1543,"date":1464,"chapter":1544,"chapterSort":1545,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":1461,"stem":1470,"title":5,"date":1464,"chapter":1462,"chapterSort":1463,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},{"path":1548,"stem":1549,"title":1550,"date":1464,"chapter":1551,"chapterSort":1552,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":1554,"stem":1555,"title":1556,"date":1464,"chapter":1557,"chapterSort":1558,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":1560,"stem":1561,"title":1562,"date":1464,"chapter":1563,"chapterSort":1564,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":1566,"stem":1567,"title":1568,"date":1464,"chapter":1569,"chapterSort":1570,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":1572,"stem":1573,"title":1574,"date":1464,"chapter":1575,"chapterSort":1576,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":1578,"stem":1579,"title":1580,"date":1464,"chapter":1581,"chapterSort":1582,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":1584,"stem":1585,"title":1586,"date":1464,"chapter":1587,"chapterSort":1588,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":1590,"stem":1591,"title":1592,"date":1464,"chapter":1593,"chapterSort":1594,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词","函数对象与谓词","16.7",16070000,{"path":1596,"stem":1597,"title":1598,"date":1464,"chapter":1599,"chapterSort":1600,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":1602,"stem":1603,"title":1604,"date":1464,"chapter":1605,"chapterSort":1606,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":1608,"stem":1609,"title":1610,"date":1464,"chapter":1611,"chapterSort":1612,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":1614,"stem":1615,"title":1616,"date":1464,"chapter":1617,"chapterSort":1618,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","auto","18.1",18010000,{"path":1620,"stem":1621,"title":1622,"date":1464,"chapter":1623,"chapterSort":1624,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":1626,"stem":1627,"title":1628,"date":1464,"chapter":1629,"chapterSort":1630,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式","Lambda 表达式","18.11",18110000,{"path":1632,"stem":1633,"title":1634,"date":1464,"chapter":1635,"chapterSort":1636,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","std::function","18.12",18120000,{"path":1638,"stem":1639,"title":1640,"date":1464,"chapter":1641,"chapterSort":1642,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":1644,"stem":1645,"title":1646,"date":1464,"chapter":1647,"chapterSort":1648,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":1650,"stem":1651,"title":1652,"date":1464,"chapter":1653,"chapterSort":1654,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":1656,"stem":1657,"title":1658,"date":1464,"chapter":1659,"chapterSort":1660,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":1662,"stem":1663,"title":1664,"date":1464,"chapter":1665,"chapterSort":1666,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":1668,"stem":1669,"title":1670,"date":1464,"chapter":1671,"chapterSort":1672,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono","std::chrono","18.18",18180000,{"path":1674,"stem":1675,"title":1676,"date":1464,"chapter":1677,"chapterSort":1678,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":1680,"stem":1681,"title":1682,"date":1464,"chapter":1683,"chapterSort":1684,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":1686,"stem":1687,"title":1688,"date":1464,"chapter":1689,"chapterSort":1690,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":1692,"stem":1693,"title":1694,"date":1464,"chapter":1695,"chapterSort":1696,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":1698,"stem":1699,"title":1700,"date":1464,"chapter":1701,"chapterSort":1702,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":1704,"stem":1705,"title":1706,"date":1464,"chapter":1707,"chapterSort":1708,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":1710,"stem":1711,"title":1712,"date":1464,"chapter":1713,"chapterSort":1714,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":1716,"stem":1717,"title":1718,"date":1464,"chapter":1719,"chapterSort":1720,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":1722,"stem":1723,"title":1724,"date":1464,"chapter":1725,"chapterSort":1726,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","using","18.3",18030000,{"path":1728,"stem":1729,"title":1730,"date":1464,"chapter":1731,"chapterSort":1732,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class","enum class","18.4",18040000,{"path":1734,"stem":1735,"title":1736,"date":1464,"chapter":1737,"chapterSort":1738,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":1740,"stem":1741,"title":1742,"date":1464,"chapter":1743,"chapterSort":1744,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":1746,"stem":1747,"title":1748,"date":1464,"chapter":1749,"chapterSort":1750,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","constexpr","18.7",18070000,{"path":1752,"stem":1753,"title":1754,"date":1464,"chapter":1755,"chapterSort":1756,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":1758,"stem":1759,"title":1760,"date":1464,"chapter":1761,"chapterSort":1762,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":1764,"stem":1765,"title":1766,"date":1464,"chapter":1054,"chapterSort":1767,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++",18000000,{"path":1769,"stem":1770,"title":1771,"date":1464,"chapter":1772,"chapterSort":1773,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":1775,"stem":1776,"title":1777,"date":1464,"chapter":1778,"chapterSort":1779,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":1781,"stem":1782,"title":1783,"date":1464,"chapter":1784,"chapterSort":1785,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":1787,"stem":1788,"title":1789,"date":1464,"chapter":1790,"chapterSort":1791,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":1793,"stem":1794,"title":1795,"date":1464,"chapter":1796,"chapterSort":1797,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":1799,"stem":1800,"title":1801,"date":1464,"chapter":1802,"chapterSort":1803,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":1805,"stem":1806,"title":1807,"date":1464,"chapter":1808,"chapterSort":1809,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":1811,"stem":1812,"title":1813,"date":1464,"chapter":1814,"chapterSort":1815,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":1817,"stem":1818,"title":1819,"date":1464,"chapter":1820,"chapterSort":1821,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":1823,"stem":1824,"title":1825,"date":1464,"chapter":1826,"chapterSort":1827,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":1829,"stem":1830,"title":1831,"date":1464,"chapter":1832,"chapterSort":1833,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":1835,"stem":1836,"title":1837,"date":1464,"chapter":1838,"chapterSort":1839,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":1841,"stem":1842,"title":1843,"date":1464,"chapter":1844,"chapterSort":1845,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放","2",2000000,{"path":1847,"stem":1848,"title":1849,"date":1464,"chapter":1850,"chapterSort":1851,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出","3",3000000,{"path":1853,"stem":1854,"title":1855,"date":1464,"chapter":1856,"chapterSort":1857,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符","4",4000000,{"path":1859,"stem":1860,"title":1861,"date":1464,"chapter":1862,"chapterSort":1863,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构","5",5000000,{"path":1865,"stem":1866,"title":1867,"date":1464,"chapter":1868,"chapterSort":1869,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组","6",6000000,{"path":1871,"stem":1872,"title":1873,"date":1464,"chapter":1874,"chapterSort":1875,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":1877,"stem":1878,"title":1879,"date":1464,"chapter":1880,"chapterSort":1881,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":1883,"stem":1884,"title":1885,"date":1464,"chapter":1886,"chapterSort":1887,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":1471},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":1467,"stem":1889,"title":1890,"date":1464,"chapter":1472,"chapterSort":1891,"docKey":1466,"docRoot":1467,"docTitle":1468,"isWikiDoc":229,"isWikiIndex":229},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":1893},[1894,1897,1900,1903,1906],{"path":1895,"localeSlug":1896,"i18nKey":1470},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","en-us",{"path":1898,"localeSlug":1899,"i18nKey":1470},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","zh-hant",{"path":1901,"localeSlug":1902,"i18nKey":1470},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","zh-hk",{"path":1904,"localeSlug":1905,"i18nKey":1470},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","zh-tw",{"path":1461,"localeSlug":1475,"i18nKey":1470},[1895,1473,1898,1473,1901,1473,1904,1473,1461,1473],1780663031696]