//#include "stdafx.h"
#include #include #include using namespace std;
int _tmain(int argc, _tchar* argv)
這段**的意思是用ostringstream儲存乙個string,它的內容可能來自文字,本例中是這樣的
val1: 512/nval2: 1024
然後打算把它輸出,用意是取出512和1024這兩個數值。具體的作法是用format_message.str()取出string型別的值然後用它來構造乙個istringstream,再由這個istringstream輸入到val1和val2中(其過程是交換了這兩個值),使它們獲得新的值。
【問題描述】
發現dump裡的值是val1:512,而val1和val2的值並沒有交換
【分析過程】
設定斷點後debug,發現dump第一次讀取的值就是val1:512,這說明istringstream並沒有把val1和512區分開來。
考慮istringstream區分string的標記大致有 空格、回車、製表 等,再看我的程式
format_message << "va1:"
<< val1 << "/n" 。。。。。。。
這裡的 "va1:" 沒有空格
【修改】
format_message << "va1: " << val1 << "/n" << "val2: " << val2 << "/n";
【思考】
這樣看來dump第一次接收的值是val1:512,然後val1接收val2: 1024,此時由於型別不是匹配,接收失敗,接下來dump和val2都沒有可以接收的內容,所以val1和val2的值並沒有交換
C (一) stringstream的用法
輸入輸出的標頭檔案 string流的標頭檔案 檔案流的標頭檔案 1.利用輸入輸出做資料轉換 ss stream i 將int輸入流中 ss stream str 將ss stream中的數值輸出到str中 注意 如果做多次資料轉換 必須呼叫clear 來設定轉換模式 ss stream 456 ss...
關於stringstream的一些總結
c 標準庫中的提供了比ansi c的更高階的一些功能,即單純性 型別安全和可擴充套件性。可以使用這些庫來實現安全和自動的型別轉換。如果你已習慣了風格的轉換,也許你首先會問 為什麼要花額外的精力來學習基於的型別轉換呢?也許對下面乙個簡單的例子的回顧能夠說服你。假設你想用sprintf 函式將乙個變數從...
stringstream物件的使用
識別每行中的單詞 include include include using namespace std int main string line,word will hold a line and word from input respectively while getline cin,lin...