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

Ошибка при выводе строковой переменной - C++

Восстановить пароль Регистрация
 
Arcor
 Аватар для Arcor
4766 / 1767 / 153
Регистрация: 20.11.2009
Сообщений: 5,575
Записей в блоге: 1
02.03.2012, 16:37     Ошибка при выводе строковой переменной #1
Привет всем, сразу скажу, что в с++ я не очень. Но нужно начинать уже сейчас в нем разбираться, а то скоро начнется он у меня в универе. Проблема именно вот в чем, нужно использовать MS Visual C++ 2010 Express версию, и не какую другую, а в ней какой-то баг, или я не знаю как это назвать, при выводе строковых переменных, указывает на ошибку вывода, что не могу я обработать такую операцию, вот код, если можно это так назвать
C++
1
2
3
4
5
6
7
8
9
10
11
#include "iostream"
#include "string.h"
using namespace std;
 
void main()
{   
    string s;
    s = "Hello world";
    cout << s << endl; // вот в этом месте проблема.. подчеркивает первые << 
    system("pause");
}
и говорит мне компилятор на эти << "отсутствует оператор соответствующий этим операндам"

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

в чем может быть такая загвоздка, я не понимаю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2012, 16:37     Ошибка при выводе строковой переменной
Посмотрите здесь:

C++ Задача со строковой переменной
Ошибка при выводе строки C++
ошибка при выводе в последовательности sn на с++ C++
Ошибка при выводе на экран C++
Ошибка при выводе строк из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
02.03.2012, 16:59     Ошибка при выводе строковой переменной #2
Цитата Сообщение от Arcor Посмотреть сообщение
#include "iostream"
#include "string.h"
поменяй на
C++
1
2
#include <iostream>
#include <string>
и проверь
Arcor
 Аватар для Arcor
4766 / 1767 / 153
Регистрация: 20.11.2009
Сообщений: 5,575
Записей в блоге: 1
02.03.2012, 17:30  [ТС]     Ошибка при выводе строковой переменной #3
результат тот же.. хотя оно по идее ничего не должно было поменять я читал что это эквивалент просто
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
02.03.2012, 17:37     Ошибка при выводе строковой переменной #4
Цитата Сообщение от Arcor Посмотреть сообщение
#include "string.h"
не эквивалентно

Цитата Сообщение от Luke Посмотреть сообщение
#include <string>
попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
int main()
{       
        std::string s;
        s = "Hello world";
        std::cout << s << std::endl;
 
        return 0;
}
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.03.2012, 17:38     Ошибка при выводе строковой переменной #5
Цитата Сообщение от Arcor Посмотреть сообщение
хотя оно по идее ничего не должно было поменять я читал что это эквивалент просто
C++
1
2
#include <iostream>
#include <string>
C++
1
2
#include "iostream"
#include "string.h"
Это не эквиваленты. Если случай с iostream еще можно подвести под равнозначный, то string и string.h два разных файла. Вы точно исправили и проверили?
Arcor
 Аватар для Arcor
4766 / 1767 / 153
Регистрация: 20.11.2009
Сообщений: 5,575
Записей в блоге: 1
02.03.2012, 19:49  [ТС]     Ошибка при выводе строковой переменной #6
Цитата Сообщение от fasked Посмотреть сообщение
то string и string.h два разных файла
мда... а я голову ломал, написал без расширения и все пошло, говорю же, я не силен вообще в с++
спасибо

а если не эквивалент, то в чем разница тогда?
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
02.03.2012, 20:09     Ошибка при выводе строковой переменной #7
string
cstring (string.h)
Arcor
 Аватар для Arcor
4766 / 1767 / 153
Регистрация: 20.11.2009
Сообщений: 5,575
Записей в блоге: 1
02.03.2012, 20:20  [ТС]     Ошибка при выводе строковой переменной #8
не, я имел ввиду <> и "", что эквивалент, а не с расширением H, там я разницу понял, а в скобках и кавычках есть разница? А что в самом верху написано, на .h не обратил внимания
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
02.03.2012, 20:22     Ошибка при выводе строковой переменной #9
<> - из стандартных инклудов
"" - из пользовательских
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,601
Записей в блоге: 17
02.03.2012, 20:41     Ошибка при выводе строковой переменной #10
<> и " " указывают на то где данный файл будет искаться
Arcor
 Аватар для Arcor
4766 / 1767 / 153
Регистрация: 20.11.2009
Сообщений: 5,575
Записей в блоге: 1
03.03.2012, 02:47  [ТС]     Ошибка при выводе строковой переменной #11
так, ладно разобрались, вот тогда волнует еще вопрос, почему тогда string.h работает в других компиляторах так же как и string в данной ситуации, это MinGW например, или компилятор 2008 студии?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
03.03.2012, 07:18     Ошибка при выводе строковой переменной #12
<string.h> - это сишная библиотека для работы со строками, в новом стандарте ей соостветствует заголовочный файл <cstring>. <string> - библиотека C++, описывающая класс string.
А в других компиляторах string может через цепочку заголовочных файлов быть виден из iostream, потому и работает.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
03.03.2012, 07:52     Ошибка при выводе строковой переменной #13
Цитата Сообщение от kazak Посмотреть сообщение
в новом стандарте
Ну вроде их давно переименовали для C++ а в C вроде так и пишется с .h
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
03.03.2012, 10:53     Ошибка при выводе строковой переменной #14
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну вроде их давно переименовали для C++ а в C вроде так и пишется с .h
Компилятор C++ должен компилировать (почти всегда) код, написанный на Си. К тому же и в C++ не всегда так было.

Добавлено через 1 секунду
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну вроде их давно переименовали для C++ а в C вроде так и пишется с .h
Компилятор C++ должен компилировать (почти всегда) код, написанный на Си. К тому же и в C++ не всегда так было.
Raptor75
3 / 3 / 1
Регистрация: 01.03.2012
Сообщений: 29
03.03.2012, 10:58     Ошибка при выводе строковой переменной #15
Если я правильно понял тебе нужно вывести текст на экран?

C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include<iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"Hello world!\n";
system("pause");
 
    return 0;
}
В MVS 2010 Express примерно так выглядит.
Или необходимо использовать именно string?
Arcor
 Аватар для Arcor
4766 / 1767 / 153
Регистрация: 20.11.2009
Сообщений: 5,575
Записей в блоге: 1
03.03.2012, 18:07  [ТС]     Ошибка при выводе строковой переменной #16
Цитата Сообщение от Raptor75 Посмотреть сообщение
Если я правильно понял тебе нужно вывести текст на экран?

C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include<iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"Hello world!\n";
system("pause");
 
    return 0;
}
В MVS 2010 Express примерно так выглядит.
Или необходимо использовать именно string?
я же писал, интересует именно переменная

вопрос наверно решен для меня, всем спасибо за участие !
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
03.03.2012, 19:28     Ошибка при выводе строковой переменной #17
Цитата Сообщение от fasked Посмотреть сообщение
Компилятор C++ должен компилировать (почти всегда) код, написанный на Си. К тому же и в C++ не всегда так было.
Ну так я и написал, наверно просто не полно, что в с++ раньше тоже использовали .h, но переименовали вроде в первом стандарте, могу ошибаться, но точно относительно давно. А то что должен компилировать, так это сохранили из соображений совместимости с С вроде.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2012, 22:51     Ошибка при выводе строковой переменной
Еще ссылки по теме:

Ошибка при выводе C++
Запись строковой переменной в файл C++
C++ Возможно ли присвоить переменной типа string префикс 'L' при выводе

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.03.2012, 22:51     Ошибка при выводе строковой переменной #18
Цитата Сообщение от Arcor Посмотреть сообщение
пробовал в других компиляторах откомпилировать, все отлично,
При не подключенной
C++
1
#include <string>
И этом чуде?
Цитата Сообщение от Arcor Посмотреть сообщение
void main()
Классные компиляторы, больше ими не пользуйтесь
нормальный компилятор, скажет:
Код
Compilation finished with errors:
source.cpp:5:11: error: '::main' must return 'int'
Yandex
Объявления
06.03.2012, 22:51     Ошибка при выводе строковой переменной
Ответ Создать тему
Опции темы

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