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

Ошибка error C2664 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка компиляции http://www.cyberforum.ru/cpp-beginners/thread777812.html
Здравствуйте учу С++ по книге Дейтела, вот возникла ошибка компиляции программы: #include "stdafx.h" #include <iostream> #include <string> using namespace std; class GradeBook {
C++ Одномерный массив. Дублирование элементов с четными номерами Дан массив размера N. Продублировать в нем элементы с четными номерами (2, 4, …). Условный оператор не использовать. http://www.cyberforum.ru/cpp-beginners/thread777800.html
Одномерный массив. Удаление элементов с четными номерами C++
Дан целочисленный массив размера N (> 2). Удалить из массива все элементы с четными номерами (2, 4, …). Условный оператор не использо- вать.
C++ Одномерный массив. Циклический сдвиг влево
Дан массив A размера N и целое число K (1 ≤ K ≤ 4, K < N). Осущест- вить циклический сдвиг элементов массива влево на K позиций (при этом A перейдет в A , A — в A , …, A — в A ). Допускается...
C++ Одномерный массив. Циклический сдвиг вправо http://www.cyberforum.ru/cpp-beginners/thread777795.html
Дан массив A размера N и целое число K (1 ≤ K ≤ 4, K < N). Осущест- вить циклический сдвиг элементов массива вправо на K позиций (при этом A перейдет в A , A — в A , …, A — в A ). Допускается...
C++ Правило хорошо тона при Рендеринге !? Появился такой вопрос, правильно ли запихивать указатель на устройство рендеринга в объект. Class Object { //.. D3DXDEVICE * pVideoCard; //.. } или схожий пример для обертки над DirectX Class... подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
03.02.2013, 03:09
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <string>
#include <cstddef>
using namespace std;
/////////////////////////////////////////
int main()
{
    string s1 ("Vse horosho. prekrasnaya markiza.");
    string s2 ("princessa");
    string s3 ("Privetstvuu ");
 
    s1.erase (0, 12);               // ubiraem vse horosho
    s1.replace (11, 7, s2);         // zamenyaem "markiza" na "princessa"
    s1.insert (0, s3);              // vstavlyaem "Privetstvuyu"
    s1.erase (s1.size() - 1,1);     // ubiraem '.'
    s1.append (3, '!');         // dobavlyaem '!!!'
 
    size_t x = s1.find (' ');
    while ( x < s1.size () )
 
// тут ошибка - warning C4018: <: несоответствие типов со знаком и без знака
 
    {
        s1.replace ( x, 1, "/");
 
            // и тут - error C2664: std::basic_string<_Elem,_Traits,_Alloc> &std::basic_string<_Elem,_Traits,_Alloc>::replace(unsigned int,unsigned int,const std::basic_string<_Elem,_Traits,_Alloc> &): невозможно преобразовать параметр 3 из "char" в "const std::basic_string<_Elem,_Traits,_Alloc> &"
 
        x = s1.find (' ');
    }
 
    cout<<"s1: "<<s1<<endl;
    system("pause");
    return 0;
}
warning т.к. в int записывался std::size_t (unsigned), соответственно могла быть ошибка при преобразовании.
требует все это хедер <cstddef>
а метод std::string.replace() требовам на конце const std::string &, а у вас подавался char. Надо просто заменить кавычки.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru