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

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

Войти
Регистрация
Восстановить пароль
 
soa432
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 18
#1

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

03.02.2013, 02:47. Просмотров 1239. Ответов 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;           
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2013, 02:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка error C2664 (C++):

Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' - C++
выдает вот такую ошибку - Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' использую visual...

error C2664 - C++
ошибка: error C2664: 'strcmp' : cannot convert parameter 1 from 'int' to 'const char *' вот к этому коду: case '3': // Поиск...

error C2664 - C++
Помогите пожалуйста исправить ошибку : ошибка: Ошибка 1 error C2664: void ATL::CStringT&lt;BaseType,StringTraits&gt;::Format(const wchar_t...

Ошыбка - error C2664 - C++
Тренируюсь по видео уроку писать игрушку волейбол и возникла ошибка - error C2664: 'glutSpecialFunc' : cannot convert parameter 1 from...

Шаблоны и error C2664 - C++
Всем доброго времени суток!!! В общем, есть класс template &lt;class Info&gt; class SimpleClientManager { public: ...

Error C2664: Преобразование аргументов - C++
При компиляции выскочили следующие ошибки: 1&gt;dllmain.cpp(38): error C2664: &quot;uintptr_t _beginthread(void (__cdecl *)(void *),unsigned...

1
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
03.02.2013, 03:09 #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. Надо просто заменить кавычки.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2013, 03:09
Привет! Вот еще темы с ответами:

Error C2664 в cin.getline() - C++
Всем привет.Пишу телефонную книгу в консоли ,при попытке заполнить поля структуры вылазит ряд ошибок ,типа error C2664:...

error C2664:невозможно преобразовать параметр - C++
/*************************************************** * Программа: Квадратный трехчлен * * Лаб. работа: 5 ...

error C2664:невозможно преобразовать параметр - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &lt;cstring&gt; #define q 250 struct sanat{ string Name; ...

error C2664: невозможно преобразовать параметр - C++
Здравствуйте. Отправьте меня если что в другую тему, где это обсуждалось, но я не понимаю, в чем собственно дело void grouping(int n,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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