當前位置:首頁 » 硬碟大全 » sstream緩存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sstream緩存

發布時間: 2022-09-24 13:26:35

㈠ C++的如何在打開一個文本後,一行一行的讀取內容

  1. 假如定義一個文本,格式如下:

  2. 1 2 3
    2 3 4
    3 4 5
    5 6 7
    7 8 9

  3. 文件名為test.txt(包含5行)

  4. C++代碼如下:

    #include <iostream>

    #include <sstream>

    #include <fstream>

    #include <string>

    int main(int args, char **argv)

    {

    std::ifstream fin("split.txt", std::ios::in);

    char line[1024]={0};

    std::string x = "";

    std::string y = "";

    std::string z = "";

    while(fin.getline(line, sizeof(line)))

    {

    std::stringstream word(line);

  5. 解讀代碼:

    word >> x;

    word >> y;

    word >> z;

    std::cout << "x: " << x << std::endl;

    std::cout << "y: " << y << std::endl;

    std::cout << "z: " << z << std::endl;

    }

    fin.clear();

    fin.close();

    return 0;

    }

  6. 下面介紹代碼:首先說明一下頭文件,頭文件中<iostream>, <string>的作用就不用說了,<fstream>是定義文件的需要的頭文件,而<sstream>是字元串流stringstream所需要的頭文件。

  7. 第8行: std::ifstream fin("split.txt", std::ios::in); 定義讀取的文本文件。

  8. 第9行: char line[1024] = {0}; 用於定義讀取一行的文本的變數。

  9. 第10--12行,定義了 x y z 三個字元串變數,用於存放讀取一行數據後,分別存放每行的三個數據。

  10. 第13--22行,用一個循環讀取每行數據,讀取行的函數是getline()函數,然後利用stringstream將每行文本自動按照空格分列,並分別存放到對應的三個字元串變數中。

  11. 23、24行代碼,就是刷新緩存,並關閉文件。

㈡ C++程序設計標准頭文件類型

STL標准模板庫和標准程序庫
<cstddef> 定義宏NULL和offsetof,以及其他標准類型size_t和ptrdiff_t。與對應的標准C頭文件的區別是,NULL是C++空指針常量的補充定義,宏offsetof接受結構或者聯合類型參數,只要他們沒有成員指針類型的非靜態成員即可。
<limits> 提供與基本數據類型相關的定義。例如,對於每個數值數據類型,它定義了可以表示出來的最大值和最小值以及二進制數字的位數。
<climits> 提供與基本整數數據類型相關的C樣式定義。這些信息的C++樣式定義在<limits>中
<cfloat> 提供與基本浮點型數據類型相關的C樣式定義。這些信息的C++樣式定義在<limits>中
<cstdlib> 提供支持程序啟動和終止的宏和函數。這個頭文件還聲明了許多其他雜項函數,例如搜索和排序函數,從字元串轉換為數值等函數。它與對應的標准C頭文件stdlib.h不同,定義了abort(void)。abort()函數還有額外的功能,它不為靜態或自動對象調用析構函數,也不調用傳給atexit()函數的函數。它還定義了exit()函數的額外功能,可以釋放靜態對象,以注冊的逆序調用用atexit()注冊的函數。清除並關閉所有打開的C流,把控制權返回給主機環境。
<new> 支持動態內存分配
<typeinfo> 支持變數在運行期間的類型標識
<exception> 支持異常處理,這是處理程序中可能發生的錯誤的一種方式
<cstdarg> 支持接受數量可變的參數的函數。即在調用函數時,可以給函數傳送數量不等的數據項。它定義了宏va_arg、va_end、va_start以及va_list類型
<csetjmp> 為C樣式的非本地跳躍提供函數。這些函數在C++中不常用
<csignal> 為中斷處理提供C樣式支持
< iostream> 支持標准流cin、cout、cerr和clog的輸入和輸出,它還支持多位元組字元標准流wcin、wcout、wcerr和wclog。
<iomanip> 提供操縱程序,允許改變流的狀態,從而改變輸出的格式。
<ios> 定義iostream的基類
<istream> 為管理輸出流緩存區的輸入定義模板類
<ostream> 為管理輸出流緩存區的輸出定義模板類
<sstream> 支持字元串的流輸入輸出
<fstream> 支持文件的流輸入輸出
<iosfwd> 為輸入輸出對象提供向前的聲明
<streambuf> 支持流輸入和輸出的緩存
<cstdio> 為標准流提供C樣式的輸入和輸出
<cwchar> 支持多位元組字元的C樣式輸入輸出
<stdexcept> 定義標准異常。異常是處理錯誤的方式
<cassert> 定義斷言宏,用於檢查運行期間的情形
<cerrno> 支持C樣式的錯誤信息
<utility> 定義重載的關系運算符,簡化關系運算符的寫入,它還定義了pair類型,該類型是一種模板類型,可以存儲一對值。這些功能在庫的其他地方使用
<functional> 定義了許多函數對象類型和支持函數對象的功能,函數對象是支持operator()()函數調用運算符的任意對象
<memory> 給容器、管理內存的函數和auto_ptr模板類定義標准內存分配器
<ctime> 支持系統時鍾函數
<string> 為字元串類型提供支持和定義,包括單位元組字元串(由char組成)的string和多位元組字元串(由wchar_t組成)
<cctype> 單位元組字元類別
<cwctype> 多位元組字元類別
<cstring> 為處理非空位元組序列和內存塊提供函數。這不同於對應的標准C庫頭文件,幾個C樣式字元串的一般C庫函數被返回值為const和非const的函數對替代了
<cwchar> 為處理、執行I/O和轉換多位元組字元序列提供函數,這不同於對應的標准C庫頭文件,幾個多位元組C樣式字元串操作的 一般C庫函數被返回值為const和非const的函數對替代了。
<cstdlib> 為把單位元組字元串轉換為數值、在多位元組字元和多位元組字元串之間轉換提供函數
<vector> 定義vector序列模板,這是一個大小可以重新設置的數組類型,比普通數組更安全、更靈活
<list> 定義list序列模板,這是一個序列的鏈表,常常在任意位置插入和刪除元素
<deque> 定義deque序列模板,支持在開始和結尾的高效插入和刪除操作
<queue> 為隊列(先進先出)數據結構定義序列適配器queue和priority_queue
<stack> 為堆棧(後進先出)數據結構定義序列適配器stack
<map> map是一個關聯容器類型,允許根據鍵值是唯一的,且按照升序存儲。multimap類似於map,但鍵不是唯一的。
<set> set是一個關聯容器類型,用於以升序方式存儲唯一值。multiset類似於set,但是值不必是唯一的。
<bitset> 為固定長度的位序列定義bitset模板,它可以看作固定長度的緊湊型bool數組
<iterator> 給迭代器提供定義和支持
<algorithm> 提供一組基於演算法的函數,包括置換、排序、合並和搜索
<cstdlib> 聲明C標准庫函數bsearch()和qsort(),進行搜索和排序
<ciso646> 允許在代碼中使用and代替&&
<complex> 支持復雜數值的定義和操作
<valarray> 支持數值矢量的操作
<numeric> 在數值序列上定義一組一般數學操作,例如accumulate和inner_proct
<cmath> 這是C數學庫,其中還附加了重載函數,以支持C++約定
<cstdlib> 提供的函數可以提取整數的絕對值,對整數進行取余數操作
<locale> 提供的本地化包括字元類別、排序序列以及貨幣和日期表示。
<clocale> 對本地化提供C樣式支持

http://www.cplusplus.com/reference/

C++ Reference里有相當全面的說明和示例,可以在你需要時隨時翻查

㈢ 數據文件 共11行 每行數據個數不確定 不相等 可不可以用C++或FORTRAN或MATLAB輸出每行的第一個數

可以的,你可以用open打開文件,然後把文件里的數據完完整整的read到緩存中,因為有換行符,所以可以用strtok切割\n,切割成11個數組,讀取每個數組的第0個元素就行了。

㈣ 關於c++中文件的修改和刪除

改寫成c++版本的:

文本覆蓋、插入、修改,簡單的示例一下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fp;
char *insert = "EE,EE,EE,", tmp[256]={0};
int pos, i;

/*test.txt文件內容:01,00,00,00,0E,00,00,00,00,00,00,E1,E2,00,00,00,00*/
fp = fopen("test.txt", "r+");

/*1、等長覆蓋*/
fseek(fp, 12, 1);
fprintf(fp, "0F"); /*直接寫入等長度的數據就可以完成覆蓋*/

/*2、E2後插入「EE,EE,EE,」 */
fseek(fp, 25, 1);
pos = ftell(fp); /*插入位置*/
fgets(tmp, 256, fp); /*把後面的數據緩存*/
fseek(fp, pos, 0); /*移動到插入位置*/
fprintf(fp, insert); /*插入,就是寫入數據*/
fprintf(fp, tmp); /*把原來的數據再寫回來, 完成*/

/*3、01讀取後++兩次,並重新寫迴文件*/
rewind(fp);
fscanf(fp, "%x", &i); /*讀取數據*/
i = i+2; /* +2 */
fseek(fp, -2, 1); /*調整指針*/
fprintf(fp, "%02x", i); /*寫文件*/

fclose(fp);
system("PAUSE");
return 0;
}

㈤ c++標准庫中為什麼沒有網路庫

C++標准庫的內容基本可以分以下為10類。

C1. 標准庫中與語言支持功能相關的頭文件

頭文件

描 述

<cstddef>

定義宏NULL和offsetof,以及其他標准類型size_t和ptrdiff_t。與對應的標准C頭文件的區別是,NULL是C++空指針常量的補充定義,宏offsetof接受結構或者聯合類型參數,只要他們沒有成員指針類型的非靜態成員即可。

<limits>

提供與基本數據類型相關的定義。例如,對於每個數值數據類型,它定義了可以表示出來的最大值和最小值以及二進制數字的位數。

<climits>

提供與基本整數數據類型相關的C樣式定義。這些信息的C++樣式定義在<limits>中

<cfloat>

提供與基本浮點型數據類型相關的C樣式定義。這些信息的C++樣式定義在<limits>中

<cstdlib>

提供支持程序啟動和終止的宏和函數。這個頭文件還聲明了許多其他雜項函數,例如搜索和排序函數,從字元串轉換為數值等函數。它與對應的標准C頭文件stdlib.h不同,定義了abort(void)。abort()函數還有額外的功能,它不為靜態或自動對象調用析構函數,也不調用傳給atexit()函數的函數。它還定義了exit()函數的額外功能,可以釋放靜態對象,以注冊的逆序調用用atexit()注冊的函數。清除並關閉所有打開的C流,把控制權返回給主機環境。

<new>

支持動態內存分配

<typeinfo>

支持變數在運行期間的類型標識

<exception>

支持異常處理,這是處理程序中可能發生的錯誤的一種方式

<cstdarg>

支持接受數量可變的參數的函數。即在調用函數時,可以給函數傳送數量不等的數據項。它定義了宏va_arg、va_end、va_start以及va_list類型

<csetjmp>

為C樣式的非本地跳躍提供函數。這些函數在C++中不常用

<csignal>

為中斷處理提供C樣式支持

C2. 支持流輸入/輸出的頭文件

頭文件

描 述

<iostream>

支持標准流cin、cout、cerr和clog的輸入和輸出,它還支持多位元組字元標准流wcin、wcout、wcerr和wclog。

<iomanip>

提供操縱程序,允許改變流的狀態,從而改變輸出的格式。

<ios>

定義iostream的基類

<istream>

為管理輸出流緩存區的輸入定義模板類

<ostream>

為管理輸出流緩存區的輸出定義模板類

<sstream>

支持字元串的流輸入輸出

<fstream>

支持文件的流輸入輸出

<iosfwd>

為輸入輸出對象提供向前的聲明

<streambuf>

支持流輸入和輸出的緩存

<cstdio>

為標准流提供C樣式的輸入和輸出

<cwchar>

支持多位元組字元的C樣式輸入輸出

C3. 與診斷功能相關的頭文件

頭文件

描 述

<stdexcept>

定義標准異常。異常是處理錯誤的方式

<cassert>

定義斷言宏,用於檢查運行期間的情形

<cerrno>

支持C樣式的錯誤信息

C4. 定義工具函數的頭文件

頭文件

描 述

<utility>

定義重載的關系運算符,簡化關系運算符的寫入,它還定義了pair類型,該類型是一種模板類型,可以存儲一對值。這些功能在庫的其他地方使用

<functional>

定義了許多函數對象類型和支持函數對象的功能,函數對象是支持operator()()函數調用運算符的任意對象

<memory>

給容器、管理內存的函數和auto_ptr模板類定義標准內存分配器

<ctime>

支持系統時鍾函數

C5. 支持字元串處理的頭文件

頭文件

描 述

<string>

為字元串類型提供支持和定義,包括單位元組字元串(由char組成)的string和多位元組字元串(由wchar_t組成)

<cctype>

單位元組字元類別

<cwctype>

多位元組字元類別

<cstring>

為處理非空位元組序列和內存塊提供函數。這不同於對應的標准C庫頭文件,幾個C樣式字元串的一般C庫函數被返回值為const和非const的函數對替代了

<cwchar>

為處理、執行I/O和轉換多位元組字元序列提供函數,這不同於對應的標准C庫頭文件,幾個多位元組C樣式字元串操作的一般C庫函數被返回值為const和非const的函數對替代了。

<cstdlib>

為把單位元組字元串轉換為數值、在多位元組字元和多位元組字元串之間轉換提供函數

C6. 定義容器類的模板的頭文件

頭文件

描 述

<vector>

定義vector序列模板,這是一個大小可以重新設置的數組類型,比普通數組更安全、更靈活

<list>

定義list序列模板,這是一個序列的鏈表,常常在任意位置插入和刪除元素

<deque>

定義deque序列模板,支持在開始和結尾的高效插入和刪除操作

<queue>

為隊列(先進先出)數據結構定義序列適配器queue和priority_queue

<stack>

為堆棧(後進先出)數據結構定義序列適配器stack

<map>

map是一個關聯容器類型,允許根據鍵值是唯一的,且按照升序存儲。multimap類似於map,但鍵不是唯一的。

<set>

set是一個關聯容器類型,用於以升序方式存儲唯一值。multiset類似於set,但是值不必是唯一的。

<bitset>

為固定長度的位序列定義bitset模板,它可以看作固定長度的緊湊型bool數組

C7. 支持迭代器的頭文件

頭文件

描 述

<iterator>

給迭代器提供定義和支持

C8. 有關演算法的頭文件

頭文件

描 述

<algorithm>

提供一組基於演算法的函數,包括置換、排序、合並和搜索

<cstdlib>

聲明C標准庫函數bsearch()和qsort(),進行搜索和排序

<ciso646>

允許在代碼中使用and代替&&

C9. 有關數值操作的頭文件

頭文件

描 述

<complex>

支持復雜數值的定義和操作

<valarray>

支持數值矢量的操作

<numeric>

在數值序列上定義一組一般數學操作,例如accumulate和inner_proct

<cmath>

這是C數學庫,其中還附加了重載函數,以支持C++約定

<cstdlib>

提供的函數可以提取整數的絕對值,對整數進行取余數操作

C10. 有關本地化的頭文件

頭文件

描 述

<locale>

提供的本地化包括字元類別、排序序列以及貨幣和日期表示。

<clocale>

對本地化提供C樣式支持

㈥ C++問題,如何使用標准庫

C++標准庫的內容基本可以分以下為10類。

C1. 標准庫中與語言支持功能相關的頭文件

頭文件

描 述

<cstddef>

定義宏NULL和offsetof,以及其他標准類型size_t和ptrdiff_t。與對應的標准C頭文件的區別是,NULL是C++空指針常量的補充定義,宏offsetof接受結構或者聯合類型參數,只要他們沒有成員指針類型的非靜態成員即可。

<limits>

提供與基本數據類型相關的定義。例如,對於每個數值數據類型,它定義了可以表示出來的最大值和最小值以及二進制數字的位數。

<climits>

提供與基本整數數據類型相關的C樣式定義。這些信息的C++樣式定義在<limits>中

<cfloat>

提供與基本浮點型數據類型相關的C樣式定義。這些信息的C++樣式定義在<limits>中

<cstdlib>

提供支持程序啟動和終止的宏和函數。這個頭文件還聲明了許多其他雜項函數,例如搜索和排序函數,從字元串轉換為數值等函數。它與對應的標准C頭文件stdlib.h不同,定義了abort(void)。abort()函數還有額外的功能,它不為靜態或自動對象調用析構函數,也不調用傳給atexit()函數的函數。它還定義了exit()函數的額外功能,可以釋放靜態對象,以注冊的逆序調用用atexit()注冊的函數。清除並關閉所有打開的C流,把控制權返回給主機環境。

<new>

支持動態內存分配

<typeinfo>

支持變數在運行期間的類型標識

<exception>

支持異常處理,這是處理程序中可能發生的錯誤的一種方式

<cstdarg>

支持接受數量可變的參數的函數。即在調用函數時,可以給函數傳送數量不等的數據項。它定義了宏va_arg、va_end、va_start以及va_list類型

<csetjmp>

為C樣式的非本地跳躍提供函數。這些函數在C++中不常用

<csignal>

為中斷處理提供C樣式支持

C2. 支持流輸入/輸出的頭文件

頭文件

描 述

<iostream>

支持標准流cin、cout、cerr和clog的輸入和輸出,它還支持多位元組字元標准流wcin、wcout、wcerr和wclog。

<iomanip>

提供操縱程序,允許改變流的狀態,從而改變輸出的格式。

<ios>

定義iostream的基類

<istream>

為管理輸出流緩存區的輸入定義模板類

<ostream>

為管理輸出流緩存區的輸出定義模板類

<sstream>

支持字元串的流輸入輸出

<fstream>

支持文件的流輸入輸出

<iosfwd>

為輸入輸出對象提供向前的聲明

<streambuf>

支持流輸入和輸出的緩存

<cstdio>

為標准流提供C樣式的輸入和輸出

<cwchar>

支持多位元組字元的C樣式輸入輸出

C3. 與診斷功能相關的頭文件

頭文件

描 述

<stdexcept>

定義標准異常。異常是處理錯誤的方式

<cassert>

定義斷言宏,用於檢查運行期間的情形

<cerrno>

支持C樣式的錯誤信息

C4. 定義工具函數的頭文件

頭文件

描 述

<utility>

定義重載的關系運算符,簡化關系運算符的寫入,它還定義了pair類型,該類型是一種模板類型,可以存儲一對值。這些功能在庫的其他地方使用

<functional>

定義了許多函數對象類型和支持函數對象的功能,函數對象是支持operator()()函數調用運算符的任意對象

<memory>

給容器、管理內存的函數和auto_ptr模板類定義標准內存分配器

<ctime>

支持系統時鍾函數

C5. 支持字元串處理的頭文件

頭文件

描 述

<string>

為字元串類型提供支持和定義,包括單位元組字元串(由char組成)的string和多位元組字元串(由wchar_t組成)

<cctype>

單位元組字元類別

<cwctype>

多位元組字元類別

<cstring>

為處理非空位元組序列和內存塊提供函數。這不同於對應的標准C庫頭文件,幾個C樣式字元串的一般C庫函數被返回值為const和非const的函數對替代了

<cwchar>

為處理、執行I/O和轉換多位元組字元序列提供函數,這不同於對應的標准C庫頭文件,幾個多位元組C樣式字元串操作的一般C庫函數被返回值為const和非const的函數對替代了。

<cstdlib>

為把單位元組字元串轉換為數值、在多位元組字元和多位元組字元串之間轉換提供函數

C6. 定義容器類的模板的頭文件

頭文件

描 述

<vector>

定義vector序列模板,這是一個大小可以重新設置的數組類型,比普通數組更安全、更靈活

<list>

定義list序列模板,這是一個序列的鏈表,常常在任意位置插入和刪除元素

<deque>

定義deque序列模板,支持在開始和結尾的高效插入和刪除操作

<queue>

為隊列(先進先出)數據結構定義序列適配器queue和priority_queue

<stack>

為堆棧(後進先出)數據結構定義序列適配器stack

<map>

map是一個關聯容器類型,允許根據鍵值是唯一的,且按照升序存儲。multimap類似於map,但鍵不是唯一的。

<set>

set是一個關聯容器類型,用於以升序方式存儲唯一值。multiset類似於set,但是值不必是唯一的。

<bitset>

為固定長度的位序列定義bitset模板,它可以看作固定長度的緊湊型bool數組

C7. 支持迭代器的頭文件

頭文件

描 述

<iterator>

給迭代器提供定義和支持

C8. 有關演算法的頭文件

頭文件

描 述

<algorithm>

提供一組基於演算法的函數,包括置換、排序、合並和搜索

<cstdlib>

聲明C標准庫函數bsearch()和qsort(),進行搜索和排序

<ciso646>

允許在代碼中使用and代替&&

C9. 有關數值操作的頭文件

頭文件

描 述

<complex>

支持復雜數值的定義和操作

<valarray>

支持數值矢量的操作

<numeric>

在數值序列上定義一組一般數學操作,例如accumulate和inner_proct

<cmath>

這是C數學庫,其中還附加了重載函數,以支持C++約定

<cstdlib>

提供的函數可以提取整數的絕對值,對整數進行取余數操作

C10. 有關本地化的頭文件

頭文件

描 述

<locale>

提供的本地化包括字元類別、排序序列以及貨幣和日期表示。

<clocale>

對本地化提供C樣式支持