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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Arcor
4794 / 1795 / 157
Регистрация: 20.11.2009
Сообщений: 5,684
Записей в блоге: 1
#1

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

02.03.2012, 16:37. Просмотров 992. Ответов 17
Метки нет (Все метки)

Привет всем, сразу скажу, что в с++ я не очень. Но нужно начинать уже сейчас в нем разбираться, а то скоро начнется он у меня в универе. Проблема именно вот в чем, нужно использовать 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 не хочет

в чем может быть такая загвоздка, я не понимаю
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2012, 16:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при выводе строковой переменной (C++):

Неожиданный результат при выводе значения переменной, несмотря на инкремент - C++
подскажите почему значения a и с начинаются с 1 а не с 2 стоит же &quot;++&quot; int a = 1; void f() { int b = 1; // инициализируется...

Возможно ли присвоить переменной типа string префикс 'L' при выводе - C++
Возможно ли присвоить переменной типа string префикс 'L' при выводе? Если да, то как. Проблема в том, что слово хранящееся в переменной...

При выводе на экран переменной string выводится набор левых символов - C++
int main() { int s; string b; printf(&quot;DEC: &quot;); scanf(&quot;%i&quot;, &amp;s); for (int i = 31; i &gt;= 0; i--) { s += (char)(((b &gt;&gt;...

Задача со строковой переменной - C++
помогите кто может...вот задание &quot;Создать программу, анализирующую правильность записи арифметического выражения с точки зрения синтаксиса...

Запись строковой переменной в файл - C++
String z ; z= Edit5-&gt;Text.c_str(); FILE * ptrFile = fopen(&quot;1.txt&quot;, &quot;r&quot;); if (ptrFile != NULL) { ...

Ошибка при выводе - C++
Не могу найти ошибку в цикле. Суть такая: &quot;вывести на дисплей фамилии и номера групп для всех студентов, включенных в массив, имеющих хотя...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Luke
39 / 39 / 1
Регистрация: 21.02.2012
Сообщений: 95
02.03.2012, 16:59 #2
Цитата Сообщение от Arcor Посмотреть сообщение
#include "iostream"
#include "string.h"
поменяй на
C++
1
2
#include <iostream>
#include <string>
и проверь
1
Arcor
4794 / 1795 / 157
Регистрация: 20.11.2009
Сообщений: 5,684
Записей в блоге: 1
02.03.2012, 17:30  [ТС] #3
результат тот же.. хотя оно по идее ничего не должно было поменять я читал что это эквивалент просто
0
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;
}
1
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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 два разных файла. Вы точно исправили и проверили?
1
Arcor
4794 / 1795 / 157
Регистрация: 20.11.2009
Сообщений: 5,684
Записей в блоге: 1
02.03.2012, 19:49  [ТС] #6
Цитата Сообщение от fasked Посмотреть сообщение
то string и string.h два разных файла
мда... а я голову ломал, написал без расширения и все пошло, говорю же, я не силен вообще в с++
спасибо

а если не эквивалент, то в чем разница тогда?
0
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
02.03.2012, 20:09 #7
string
cstring (string.h)
1
Arcor
4794 / 1795 / 157
Регистрация: 20.11.2009
Сообщений: 5,684
Записей в блоге: 1
02.03.2012, 20:20  [ТС] #8
не, я имел ввиду <> и "", что эквивалент, а не с расширением H, там я разницу понял, а в скобках и кавычках есть разница? А что в самом верху написано, на .h не обратил внимания
0
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
02.03.2012, 20:22 #9
<> - из стандартных инклудов
"" - из пользовательских
1
Avazart
Эксперт С++
7185 / 5359 / 280
Регистрация: 10.12.2010
Сообщений: 23,654
Записей в блоге: 17
02.03.2012, 20:41 #10
<> и " " указывают на то где данный файл будет искаться
0
Arcor
4794 / 1795 / 157
Регистрация: 20.11.2009
Сообщений: 5,684
Записей в блоге: 1
03.03.2012, 02:47  [ТС] #11
так, ладно разобрались, вот тогда волнует еще вопрос, почему тогда string.h работает в других компиляторах так же как и string в данной ситуации, это MinGW например, или компилятор 2008 студии?
0
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
03.03.2012, 07:18 #12
<string.h> - это сишная библиотека для работы со строками, в новом стандарте ей соостветствует заголовочный файл <cstring>. <string> - библиотека C++, описывающая класс string.
А в других компиляторах string может через цепочку заголовочных файлов быть виден из iostream, потому и работает.
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
03.03.2012, 07:52 #13
Цитата Сообщение от kazak Посмотреть сообщение
в новом стандарте
Ну вроде их давно переименовали для C++ а в C вроде так и пишется с .h
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
03.03.2012, 10:53 #14
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну вроде их давно переименовали для C++ а в C вроде так и пишется с .h
Компилятор C++ должен компилировать (почти всегда) код, написанный на Си. К тому же и в C++ не всегда так было.

Добавлено через 1 секунду
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну вроде их давно переименовали для C++ а в C вроде так и пишется с .h
Компилятор C++ должен компилировать (почти всегда) код, написанный на Си. К тому же и в C++ не всегда так было.
0
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?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2012, 10:58
Привет! Вот еще темы с ответами:

Отрезать последний символ от строковой переменной - C++
То есть, была, к примеру, переменная со значением &quot;12345&quot;, надо получить &quot;1234&quot;. Длина строки неизвестна, последний удаляемый символ...

Как найти слово в строковой переменной? - C++
string q; cin &gt;&gt; q; if (q == 'Привет друг!') { cout &lt;&lt; &quot;Привет !&quot;; } как правильно организовать данный код? использую...

ошибка при выводе в последовательности sn на с++ - C++
sn- это подсчет суммы ряда не могу понять почему одинаково значение при выполнении программы до 5 считает нормально, а затем зеркально...

Ошибка при выводе строки - C++
С указателями работаю не в первый раз, но почему-то возникает ошибка во время работы. int main() { char temp = &quot;hello_world&quot;; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.03.2012, 10:58
Ответ Создать тему
Опции темы

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