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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
EVERLAST_999
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 61
#1

ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*') - C++

21.05.2013, 10:16. Просмотров 2203. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    string fileName, currWord, currMax = "";
    cin>>fileName;
    freopen(fileName, "r", stdin);
    while (cin>>currWord)
    {
        if (2 <= currWord.length() && 'E' == currWord[1]&& currWord.length() >= currMax.length())
            currMax = currWord; 
    }
    if (currMax.length())
        cout<<currMax;
    else
        cout<<"There is not such words";
    return 0;
}

Код
12	33	C:\Users\User\Desktop\prog by dev c++\main.cpp	[Error] cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '1' to 'FILE* freopen(const char*, const char*, FILE*)'
как исправить эту ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 10:16     ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*')
Посмотрите здесь:
Ошибка при компиляции "Cannot convert `std::string' to `const char*" C++
Error: ambiguous overload for 'operator<<' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}' C++
C++ Std::string в const char*
C++ Ошибка: no matching function for call to 'Slovare<std::basic_string<char> >::show()'
Преобразовать const unsigned char* в std::string (или _bstr_t ) C++
IntelliSense: отсутствует оператор "<<", соответствующий этим операндам типы операндов: std::basic_ostream<char, std::char_traits<char> C++
C++ запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
std::string в char* C++
char* vs std::string C++
Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *' C++
C++ Error C2664: std::vector<_Ty>::push: невозможно преобразовать параметр 1 из 'double' в 'const std::string &'
std::string и/или char* C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
21.05.2013, 10:24     ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*') #2
функция freopen требует в качестве имени char* а не string.
У string есть метод c_str(), возвращающий char значение строки.
-=ЮрА=-
Заблокирован
Автор FAQ
21.05.2013, 14:09     ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*') #3
EVERLAST_999, вот так будет работать
Цитата Сообщение от EVERLAST_999 Посмотреть сообщение
freopen(fileName.c_str(), "r", stdin);
либо
Цитата Сообщение от EVERLAST_999 Посмотреть сообщение
freopen(fileName.data(), "r", stdin);
Ответ Создать тему
Опции темы

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