C++ streambuf::snextc() 函式



C++ 的std::stringbuf::snextc()函式用於將輸入序列向前移動一個字元,並返回當前位置的新字元。如果讀取操作成功,則返回下一個字元;否則,返回traits_type::eof(),表示流的結尾或錯誤。

語法

以下是 std::streambuf::snextc() 函式的語法。

int_type snextc();

引數

它不接受任何引數。

返回值

它返回受控輸入序列中下一個位置的字元,使用成員traits_type::to_int_type將其轉換為int_type型別的值。

異常

如果丟擲異常,流緩衝區將處於有效狀態。

資料競爭

它修改流緩衝區物件。

示例 1

在下面的示例中,我們將考慮snextc()函式的基本用法。

#include <iostream>
#include <sstream>
int main() {
   std::istringstream a("Vanakam");
   std::streambuf * b = a.rdbuf();
   char c = b -> snextc();
   std::cout << "Result : " << c << std::endl;
   return 0;
}

輸出

以上程式碼的輸出如下:

Result : a

示例 2

考慮以下示例,我們將迴圈遍歷輸入序列中的每個字元。

#include <iostream>
#include <sstream>
int main() {
   std::istringstream a("ATUTORIALSPOINT");
   std::streambuf * v = a.rdbuf();
   char c;
   while ((c = v -> snextc()) != std::char_traits < char > ::eof()) {
      std::cout << c << " ";
   }
   std::cout << std::endl;
   return 0;
}

輸出

以上程式碼的輸出如下:

T U T O R I A L S P O I N T 
streambuf.htm
廣告