c++中stringstream變量的使用

stringstream在接受一個字符串流輸入後,需要clear方能再次接受輸入並使用,str("")用來清空緩存在stringstream中的內容。

正確代碼:

#include <iostream>
#include <string>
#include <stdlib.h>

int main(int argc, char* argv[]) {
	std::stringstream ss;
	int a, b, c;
	ss << "4";
	ss >> a;
	ss.clear();
	ss << "2";
	ss >> b;
	ss.clear();
	ss.str("");
	ss << "567";
	ss >> c;
	std::cout << a << " " << b << " " << c << std::endl;
	system("pause");
	return 0;
}

輸出結果:4 2 567

以上代碼若沒有ss.clear()的話輸出結果:4 -858993460 -858993460

參考鏈接:

stringstream中的clear()與str()

 

-----------------------------------------------2020.2.12-----------------------------------------------

探究stringstream持續向一字符串變量傳遞值是否會影響原意:

int main(){
	std::stringstream ss;
	std::string str;
	ss << 11;
	ss >> str;
	std::cout << str << std::endl;
	ss.clear();
	ss.str("");
	//str = "";
	ss << 22;
	ss >> str;
	std::cout << str << std::endl;
	return 0;
}

無論中間的註釋行是否被運行過,結果均是11換行22。證明在下次傳遞字符串值後字符串變量中的值被擦除後再寫上了。

發佈了48 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章