[C++] string в С++ еще вопрос ))
...
std::string
а) using namespace std; (вставить перед main-ом)
б) писать std::string вместо string
Причём считается, что лучше использовать б)
2 - (10x ) не #include "string.h", а #include <string>
Ага! Понятно спасибо!
#include "iostream.h"
#include <string>
int main
{
std::string sHi="hi hi hi";
cout << sHi <<endl;
return 0;
}
Как мне теперь ее вывести на экран?
Ошибка такая:binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
(or there is no acceptable conversion)
мб std::cout
printf("%s",sHi);
%s; String; When used with printf functions, specifies a single-byte–character string; when used with wprintf functions, specifies a wide-character string. Characters are printed up to the first null character or until the precision value is reached.
Поидеи должна выводить строку, но при запуске винда ругается на ошибку в программе и закрывает ее )
printf - это C, а std::string - это C++.
Еще
почему так работает:
#include <iostream>
#include <string>
..........
..........
std::string sHi;
sHi="hi hi hi";
std::cout << sHi;
..........
..........
А вот так не работает:
#include "iostream.h"
#include <string>
..........
..........
std::string sHi;
sHi="hi hi hi";
cout << sHi;
..........
..........
Самое время заглянуть в документацию.
ртфм!
потому что не надо юзать iostream.h =)
там тоже умное пишут
У iostream и iostream.h нет исходников.
ща специально для тебя поправлю
У iostream и iostream.h нет исходников.А что же значит include?
для ostream'а который в <iostream.h>, не определен оператор << с правым операндом std::string, поэтому надо подрубать <iostream> и юзать std::ostream
Да, мы с асетом зануды и придираемся к словам =)
для ostream'а который в <iostream.h>, не определен оператор << с правым операндом std::stringМожно просто написать cout << str.c_str;
это кот гот годЧто бы это могло значить?
Оставить комментарий
stat7819605
#include "stdafx.h"#include "iostream.h"
#include <string>
int main
{
std::string sHi="hi hi hi";
cout << sHi <<endl;
return 0;
}
Как мне теперь ее вывести на экран?
Ошибка такая:binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
(or there is no acceptable conversion)