Форум программистов, компьютерный форум CyberForum.ru

не понимаю момент \0 - C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.69
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
27.10.2009, 19:51     не понимаю момент \0 #1
C++
1
2
3
4
5
6
7
string s;
cin>>s;
int n=0;
int w=0;
while(s='\0'){
++n;
if(s=' ')++w;
ошибки
Error 1 error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion) c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 13 proba
Error 2 error C2451: conditional expression of type 'std::basic_string<_Elem,_Traits,_Ax>' is illegal c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 16 proba
Error 3 error C2451: conditional expression of type 'std::basic_string<_Elem,_Traits,_Ax>' is illegal c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 18 proba
что не так?Объясните мне когда нужн юзать \0????или же в данном случае что буде правильнее?как объяснить компилятору,что мне нужен конец строки?

Добавлено через 57 секунд
и EOF попробовал,тоже самое
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2009, 19:51     не понимаю момент \0
Посмотрите здесь:

C++ С++ не понимаю
C++ Не Понимаю С++
не понимаю. строки. C++
C++ не понимаю условие!!
C++ чуть не понимаю..
C++ Не понимаю CALLBACK
C++ Не понимаю вопроса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
28.10.2009, 09:06  [ТС]     не понимаю момент \0 #21
accept, а я думал что это с нуля как и КиР учит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
28.10.2009, 10:42     не понимаю момент \0 #22
там, например, есть
конкатенация строк


C++
1
2
3
4
5
6
7
8
9
10
11
 
#include <iostream>
 
using namespace std;
 
int main(void)
{
 
    cout << "o" "n" "e" << endl;
    return 0;
}
, но она была до C++, поэтому в книге про неё ничего нет, то есть её уже нужно знать

про указатели тоже ничего подробного не будет, так вскользь, как напоминание про что речь

Добавлено через 2 минуты
сами понятия контрольных символов endl == '\n' и ends == '\0' и как вообще записать один контрольный символ, про это уже написано
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
28.10.2009, 11:17  [ТС]     не понимаю момент \0 #23
Цитата Сообщение от accept Посмотреть сообщение
про указатели тоже ничего подробного не будет, так вскользь, как напоминание про что речь
у меня с этим геморой
Somebody
2775 / 1588 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
28.10.2009, 14:32     не понимаю момент \0 #24
Цитата Сообщение от accept Посмотреть сообщение
сами понятия контрольных символов endl == '\n' и ends == '\0'
endl и ends - это функции, они никак не равны символам.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
 
int main()
{
    ostream& (*myEndl)(ostream&) = endl;
    cout << "123" << myEndl << "456";
    myEndl(cout);
    cout << "789";
    cin.peek();
}
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.10.2009, 03:58     не понимаю момент \0 #25
МедведЪ, в К & R всё расписано, правда, надо изучать сначала, то есть, сразу читать раздел про указатели смысла нет, он всё время опирается на материал, который уже выдал

Цитата Сообщение от Somebody
endl и ends - это функции, они никак не равны символам.
а я думал они возвращают
Somebody
2775 / 1588 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
29.10.2009, 15:26     не понимаю момент \0 #26
Цитата Сообщение от accept Посмотреть сообщение
а я думал они возвращают
Тогда бы надо было скобки ставить после них. А так endl ещё и flush делает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2009, 05:43     не понимаю момент \0
Еще ссылки по теме:

C++ isdigit() не понимаю
C строки,не понимаю C++
C++ Не понимаю записи
Не понимаю вызовы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.10.2009, 05:43     не понимаю момент \0 #27
я думал << достаёт из endl символ '\n' и таким образом он возвращается, я вообще не думал, что endl проводит действия, что-то вроде объекта, в котором хранится текущий перевод строки, подходящий для системы
потом я подумал, что, раз это функция, то сам endl возвращает '\n', а скобки, так их нет у <<, но он значение может вернуть
Yandex
Объявления
30.10.2009, 05:43     не понимаю момент \0
Ответ Создать тему

Метки
МедведЪ
Опции темы

Текущее время: 22:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru