SO C++ forbids comparison between pointer and integer [-fpermissive]
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Enter your number: ";
int name = 0;
cin >> name;
while ( name == "10" ) {
name++;
break;
}
if ( name == "10" ) /* Error */ {
cout << "Yes" << endl;
}
// Framed message
const string greeting = "This your number: " + name;
const string spaces(greeting.size(), '$');
const string first = "$" + spaces + "$";
const string second(first.size(), '$');
cout << endl;
cout << second << endl;
cout << first << endl;
cout << "$" << greeting << "$";
cout << second << endl;
cout << first << endl;
return 0;
}
Я уже 2 дня пытаюсь понять проблему но не получается, вот моя проблема:
ISO C++ forbids comparison between pointer and integer [-fpermissive]
Жду вашего ответа и буду очень рад если поможете, оценю!
Ответы (2 шт):
Автор решения: aa_talanin
→ Ссылка
if ( name == "10" )
Вы сравниваете int слева и const char * справа, что не нравится компилятору, и он такое запрещает. Если вам хочется сравнить со значением 10, то так и напишите name == 10 без использования строкового литерала.
Автор решения: Harry
→ Ссылка
Сравнение
name == "10"
сравнивает (пытается!) целое число в переменной name типа int и — внимание! — указатель на строку "10". Вряд ли это то, что вы хотели?
Сравнивайте просто числа:
name == 10