Bool üçün C ++ simli

Bool funksiyası üçün mənim xətti düzgün işləmədiyini düşünürəm. Vəziyyəti idarə edə bilməz -

!! !! !! !! doğru həqiqət

0 əvəzinə 1 çap etməlidir.

 bool to_bool(string str) { transform(str.begin(), str.end(), str.begin(), ::tolower); istringstream is(str); bool b; is >> boolalpha >> b; return b; } int main() { if(to_bool("! ! ! ! true  true")) cout <<1; else cout <<0; return 0; } 

Hər hansı bir fikir?

-16
09 дек. set linkas 09 dekabr . 2014-12-09 21:36 '14 da 21:36 2014-12-09 21:36
@ 3 cavab

Mən std::istream boolean ifadələrini təhlil etmək və qiymətləndirmək üçün nə üçün gözlədiyinizi bilmirəm amma sənədlərə görə bu olmalı ( http://en.cppreference.com/w/cpp/locale/num_get/get ):

V type v boolboolalpha!=0 bərabərdirsə, aşağıdakı addımlar 2 və 3-cü addımı dəyişdirir: giriş yineleyicisindən alınan ardıcıl simvollar std::use_facet<std::numpunct<charT>>(str.getloc()).falsename()std::use_facet<std::numpunct<charT> >(str.getloc()).truename() unikal bir oyunu müəyyən etmək üçün lazımdır. Müqayisə üçün giriş yineleyicisi yalnız xarakterə ehtiyac duyulduqda sona çatır. Hedef sırası benzersiz bir şekilde eşleştirilirse, v müvafiq bool değerine ayarlanır. Əks halda yanlış saxlanılır v və std::ios_base::failbit təyin std::ios_base::failbit . Əgər unikal bir matç err|=std::ios_base::eofbit sonra (in==end) əvvəl err|=std::ios_base::eofbit , err|=std::ios_base::eofbit .

2
09 дек. Cavab Slava 09 dekabr verilir . 2014-12-09 22:08 '14 saat 10:08 'da 2014-12-09 22:08

Mən heç kimin bu sözü ilə təəccüblənməmişəm:

 bool b; istringstream("1") >> b; 
border=0

və ya

 bool b; istringstream("true") >> std::boolalpha >> b; 
2
29 мая '17 в 8:01 2017-05-29 08:01 Cavab Bədir Gs tərəfindən 29 May 'da 8:01' də veriləcək, 2017-05-29 08:01

Siz dediniz

0 əvəzinə 1 çap etməlidir.

Siz yoxlamaq is >> boolalpha >> b; is >> boolalpha >> b; bdə uğurla oxumaq b .

Burada bir şey cəhd edin:

 is >> boolalpha >> b; if ( ! is.good() ) { // Do something to deal with the error. } 
0
09 дек. Cavab 9 dekabr R Sahu tərəfindən verilir. 2014-12-09 21:54 '14 at 21:54 2014-12-09 21:54

Tags ilə bağlı digər suallar və ya bir sual