Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 22.03.2019
Сообщений: 7
1

Пишет: "Несовместимые типы операндов "char" и "const char*"". Что делать?

14.11.2019, 12:51. Просмотров 492. Ответов 8
Метки нет (Все метки)

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
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
#include <ctime>
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "ru");
    system("color 02");
    srand((int)time(0));
 
    char again;
 
    do {
        const int n = 10;
        const int m = 10;
 
        float **x = new float*[n];
 
        for (int i = 0; i < n; i++) {
            x[i] = new float[m];
        }
 
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++) {
                x[i][j] = rand() % 100;
            }
 
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                cout << x[i][j] << "\t";
            }
            cout << "\n";
        }
 
        cout << "Хотите ли вы продолжить использование программы? (да/нет)\n";
        cin >> again;
 
    } while (again == "да" || "Да" || "ДА" || "дА");
 
    cout << "Спасибо, что использовали нашу программу. Завершение работы программы.";
 
    _getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2019, 12:51
Ответы с готовыми решениями:

Ошибка: значение типа "const char *" нельзя использовать для инициализации сущности типа "char *
int main(int argc, char* argv) { char* filename = argc == 2 ? argv : &quot;Image0.jpg&quot;; } ...

"Необработанное исключение в "0x00417c85" в "oui2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000"."
Пишем программу в VS 2010 на С++ DirectX SDK (June 2010). Доходя до одной строчки появляется...

Невозможно преобразовать параметр 1 из "char *" в "LPWSTR"
Не могу решить одну проблему после того как перешел с MS VC++ 6 на MS VC++ 2010. Нигде никакой...

Необработанное исключение в "0x00a78659" в "First.exe": 0xC0000005: Нарушение прав доступа при записи "0x0189f000"
Здравствуйте, вот столкнулся с ошибкой и не могу понять в чем причина, вроде все правильно сделал....

8
1 / 1 / 0
Регистрация: 21.06.2018
Сообщений: 39
14.11.2019, 13:01 2
у тебя again это один символ. а ты пытаешся сравнивать его с массивом. замени
C++
1
char again;
на
C++
1
char* again;
p.s. и строки в c++ так ни сравнивают .1) в своём коде ты сравниваешь указатели. 2) это выражение всегда выдаст true так как после || стоит не нулевая константа.
0
0 / 0 / 0
Регистрация: 22.03.2019
Сообщений: 7
14.11.2019, 13:04  [ТС] 3
я пробовал сделать *again, но тогда он говорит, мол, в 41-й строчке неинициализированная локальная переменная again
0
Модератор
3485 / 2933 / 540
Регистрация: 07.10.2015
Сообщений: 6,178
14.11.2019, 13:12 4
ampers4nd, сделай хотя бы так:
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
38
39
40
41
42
43
44
45
46
47
48
49
#include <ctime>
#include <iostream>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    char again[16];
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    system("color 02");
    srand((int)time(0));
 
    do {
        const int n = 10;
        const int m = 10;
 
        float **x = new float*[n];
 
        for (int i = 0; i < n; i++) {
            x[i] = new float[m];
        }
 
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++) {
                x[i][j] = rand() % 100;
            }
 
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                cout << x[i][j] << "\t";
            }
            cout << "\n";
        }
 
        cout << "Хотите ли вы продолжить использование программы? (да/нет)\n";
        cin >> again;
 
    } while (!strcmp(again, "да") || !strcmp(again, "Да") || !strcmp(again, "ДА") || !strcmp(again, "дА"));
 
    cout << "Спасибо, что использовали нашу программу. Завершение работы программы.";
 
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 22.03.2019
Сообщений: 7
14.11.2019, 13:29  [ТС] 5
и все бы хорошо, но вылезают кракозябры(((

P.S. но она уже хотя бы запускается)))
0
Модератор
3485 / 2933 / 540
Регистрация: 07.10.2015
Сообщений: 6,178
14.11.2019, 13:38 6
ampers4nd, попробуй вернуть на место установку locale
0
0 / 0 / 0
Регистрация: 22.03.2019
Сообщений: 7
14.11.2019, 13:41  [ТС] 7
прикол в том, что он мне и с locale-ом кракозябры рисует. Бред какой-то
0
Модератор
3485 / 2933 / 540
Регистрация: 07.10.2015
Сообщений: 6,178
14.11.2019, 13:50 8
ampers4nd, у меня установка
C++
1
2
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
заставляет и вводить, и выводить в кодировке ANSI. И все красиво работает
0
бах-бах и в продакшен!
1484 / 864 / 338
Регистрация: 23.09.2014
Сообщений: 2,829
Записей в блоге: 4
25.11.2019, 10:32 9
Цитата Сообщение от ampers4nd Посмотреть сообщение
Бред какой-то
с минимальными правками:
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
38
39
40
41
42
43
44
45
46
47
48
#include <ctime>
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    system("color 02");
    srand((int)time(0));
 
    char again;
 
    do {
        const int n = 10;
        const int m = 10;
 
        float **x = new float*[n];
 
        for (int i = 0; i < n; i++) {
            x[i] = new float[m];
        }
 
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++) {
                x[i][j] = rand() % 100;
            }
 
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                cout << x[i][j] << "\t";
            }
            cout << "\n";
        }
 
        cout << "Хотите ли вы продолжить использование программы? (да/нет)\n";
        cin >> again;
 
    } while (again == 'д' || again == 'Д' || again == 'D' || again == 'd');
 
    cout << "Спасибо, что использовали нашу программу. Завершение работы программы.";
 
    _getch();
    return 0;
}
Цитата Сообщение от liv Посмотреть сообщение
заставляет и вводить, и выводить в кодировке ANSI. И все красиво работает
это может быть панацеей только с натяжкой.
в моем случае это работает если в ручную натянуть другой шрифт.
Проблема моя в том что по умолчанию в моей Windows 7 стоит Courier New шрифт, которые и нагоняет кракозябры.

Поменять его можно, например с ярлыка и с последующим запуском с этого же ярлыка так:
1.
Пишет: "Несовместимые типы операндов "char" и "const char*"". Что делать?

2.
Пишет: "Несовместимые типы операндов "char" и "const char*"". Что делать?

3.
Пишет: "Несовместимые типы операндов "char" и "const char*"". Что делать?


Есть другой способ,
прописать шрифт консоли в реестре.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2019, 10:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Необработанное исключение в "0x77df15de" в "kursova.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdd5"
как решить эту проблему? Необработанное исключение в &quot;0x77df15de&quot; в &quot;kursova.exe&quot;: 0xC0000005:...

Невозможно преобразовать "char *" в "BYTE *
Пишет ошибку C2440: инициализация: невозможно преобразовать &quot;char *&quot; в &quot;BYTE *&quot; BYTE* data...

Не компилируется LESSON30 NEHE несовместимые параметры командной строки "/ZI" и "/Gy-
Доброе время суток Помогите пжста разобратся не могу скомпилить проект с сайта...

Звук и таймер - реализовать классы: "зв. сигал", "таймер" и "секундомер-сигнализатор"
Подскажите пожалуйста, дано задание реализовать классы: &quot;зв. сигал&quot;, &quot;таймер&quot; и...


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

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

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