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

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
12.05.2011, 23:30     Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' #1
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    void crpost(const statep &struc1)
{
    int i = 0;
    int j = 0;
    char buf [50];
    char *pbuf = &buf; //<- вот сюда указывает.
    char buf1 [50];
    sprintf(buf,"%s", struc1.date);
    while(buf[i]!='\0')
        i++;
    strcpy(buf1, buf);
    pbuf += i;
    sprintf(pbuf, " ", 0);
 
    DWORD fcount;
    HANDLE hfile1 = CreateFile(L"test.txt", GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
    WriteFile(hfile1, buf, sizeof buf, &fcount, NULL);
    CloseHandle(hfile1);
}
я не указывал его как const
ms vs 2008 проект win32.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 23:30     Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
Посмотрите здесь:

C++ Невозможно преобразовать из char в const char
C++ error C2664:невозможно преобразовать параметр
Невозможно преобразовать параметр 1 из 'const char [15]' в 'LPCWSTR' C++
error C2664:невозможно преобразовать параметр C++
C++ error C2664: невозможно преобразовать параметр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
12.05.2011, 23:40     Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' #2
C++
1
char *pbuf = buf;
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
14.05.2011, 04:36  [ТС]     Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    void crpost(const statep &struc1)
{
    int j = 0;
    int i = 0;
    char buf [50];
    char *pbuf = buf;
    char *tpbuf = pbuf;
    for(int i=50; i>0; j++, i--, tpbuf++)
        *tpbuf = " "; //теперь вот сюда указывает
    char buf1 [50];
    sprintf(buf,"%s", struc1.date);
    while(buf[i]!='\0')
        i++;
    strcpy(buf1, buf);
    pbuf += i;
    sprintf(pbuf, " ", 0);
 
    DWORD fcount;
    HANDLE hfile1 = CreateFile(L"test.txt", GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
    WriteFile(hfile1, buf, sizeof buf, &fcount, NULL);
    CloseHandle(hfile1);
}
Еще одна. И почему он const хотя я и не писал const?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.05.2011, 06:47     Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' #4
C
1
*tpbuf = " "; //теперь вот сюда указывает
символьной переменной присваивается указатель
надо ' '
Yandex
Объявления
14.05.2011, 06:47     Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
Ответ Создать тему
Опции темы

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