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

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

Восстановить пароль Регистрация
 
soa432
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 18
03.02.2013, 02:47     Ошибка error C2664 #1
Не могу понять в чем ошибка, все из-за того что поменял компилятор, старый работал нормально, никаких ошибок не выдавал. Сейчас VS 2012



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
35
36
37
// sstrchng.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
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 '!!!'
 
    int 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;           
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2013, 02:47     Ошибка error C2664
Посмотрите здесь:

C++ error C2664. Исправьте пожалуйста
C++ error C2664:невозможно преобразовать параметр
C++ error C2664
C++ error C2664
Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' C++
C++ error C2664: невозможно преобразовать параметр
Шаблоны и error C2664 C++
Ошыбка - error C2664 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4928 / 2671 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
03.02.2013, 03:09     Ошибка error C2664 #2
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. Надо просто заменить кавычки.
Yandex
Объявления
03.02.2013, 03:09     Ошибка error C2664
Ответ Создать тему
Опции темы

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