Программа по вычислениям полностью устраивает, она перемножает 2 матрицы указанного размера с рандомными числами, она запускается и правильно считает, но показывает, что есть ошибки типа: cin, cout, system не являются однозначными, всего 17 ошибок, подчеркивает красным эти операторы, как это убрать?
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int** P1, ** P2, ** P3, n, m;
cout << "Введите кол-во строк матрицы: ";
cin >> n;
cout << "Введите кол-во столбцов матрицы: ";
cin >> m;
P1 = new int* [n];
for (int i = 0; i < n; i++)
P1[i] = new int[m];
srand(time(0));
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) //рандом 1 матрицы
P1[i][j] = rand() % 10;
for (int i = 0; i < n; i++)
{
cout << endl; //вывод 1 матрицы
for (int j = 0; j < m; j++)
{
cout << setw(3) << P1[i][j] << "t";
}
}
cout << endl;
int k;
cout << "Введите кол-во столбцов 2 матрицы: ";
cin >> k;
P2 = new int* [k];
for (int i = 0; i < m; i++)
P2[i] = new int[k];
for (int i = 0; i < m; i++)
for (int j = 0; j < k; j++) //рандом 2 матрицы
P2[i][j] = rand() % 10;
for (int i = 0; i < m; i++)
{
cout << endl; //вывод 2 матрицы
for (int j = 0; j < k; j++)
{
cout << setw(3) << P2[i][j] << "t";
}
}
cout << endl;
P3 = new int* [n];
for (int i = 0; i < n; i++)
P3[i] = new int[k];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < k; j++) //умножение матриц
{
P3[i][j] = 0;
for (int z = 0; z < m; z++)
P3[i][j] = P3[i][j] + P1[i][z] * P2[z][j];
}
}
cout << endl << "Результат умножения:" << endl;
for (int i = 0; i < n; i++) //вывод результата
умножения
{
cout << endl;
for (int j = 0; j < k; j++)
cout << setw(3) << P3[i][j] << "t";
}
cout << endl;
for (int i = 0; i < n; i++)
delete[] P1[i];
delete[] P1;
for (int i = 0; i < m; i++)
delete[] P2[i];
delete[] P2;
for (int i = 0; i < n; i++)
delete[] P3 [i];
delete[] P3;
system("pause");
return 0;
}
0 / 0 / 0 Регистрация: 07.01.2023 Сообщений: 6 |
|
1 |
|
23.03.2023, 13:30. Показов 1591. Ответов 14
Написала код, всё работает прекрасно, но через какое-то время появляется 90+ ошибок «cout не является однозначным» и код не компилируется (using namespace std есть, да и код работал), раньше эту проблему удавалось решить переписав строку «using namespace std» или просто убрав «;» и вернув её обратно, но сейчас это уже не помогает. Поискала решение, некоторые перезапускают VS, это помогло, но ошибка появляется очень часто и постоянно перезапускать программу неудобно. Подскажите, может есть ещё какие-то способы это решить.
0 |
Лежебока 296 / 215 / 92 Регистрация: 12.05.2021 Сообщений: 1,262 |
|
23.03.2023, 13:31 |
2 |
moolingtoon, предоставьте пример и проблемы, а там будет видно,наверно
0 |
Нарушитель 8593 / 4598 / 1060 Регистрация: 12.03.2015 Сообщений: 21,598 |
|
23.03.2023, 13:33 |
3 |
Подскажите, может есть ещё какие-то способы это решить. Что за программного монстра ты рожаешь? Для этого использование MSVC необходимо?
0 |
moolingtoon 0 / 0 / 0 Регистрация: 07.01.2023 Сообщений: 6 |
||||
23.03.2023, 13:56 [ТС] |
4 |
|||
вот небольшой кусочек, ошибка выделяет все строчки там где есть cout
0 |
Нарушитель 8593 / 4598 / 1060 Регистрация: 12.03.2015 Сообщений: 21,598 |
|
23.03.2023, 14:04 |
5 |
вот небольшой кусочек, ошибка выделяет все строчки там где есть cout Проблема явно в самой IDE и/или в мокрософтовском компиляторе.
0 |
0 / 0 / 0 Регистрация: 07.01.2023 Сообщений: 6 |
|
23.03.2023, 14:06 [ТС] |
6 |
у меня тоже работает, до определенного момента, через какое-то время появляется ошибка, раньше чинить её получалось а вот сейчас никак
0 |
Нарушитель 8593 / 4598 / 1060 Регистрация: 12.03.2015 Сообщений: 21,598 |
|
23.03.2023, 14:08 |
7 |
у меня тоже работает, до определенного момента, через какое-то время появляется ошибка, раньше чинить её получалось а вот сейчас никак Я просил:
Для этого использование MSVC необходимо?
0 |
0 / 0 / 0 Регистрация: 07.01.2023 Сообщений: 6 |
|
23.03.2023, 14:12 [ТС] |
8 |
курсовая по с++, начала работу естественно в VS, не думаю что переходить на новую среду будет удобно
0 |
Нарушитель 8593 / 4598 / 1060 Регистрация: 12.03.2015 Сообщений: 21,598 |
|
23.03.2023, 14:14 |
9 |
курсовая по с++, начала работу естественно в VS Почему естественно?
не думаю что переходить на новую среду будет удобно Почему?
0 |
Нарушитель 8593 / 4598 / 1060 Регистрация: 12.03.2015 Сообщений: 21,598 |
|
23.03.2023, 14:19 |
10 |
MSVC — это не для курсовых и лаб, а для чего-то грандиозного, с окошками, например. Для мелких консольных проектов можно юзать и что-то попроще.
0 |
0 / 0 / 0 Регистрация: 07.01.2023 Сообщений: 6 |
|
23.03.2023, 14:26 [ТС] |
11 |
изначально изучение языка начали в VS и постоянно работали в нём
0 |
Нарушитель 8593 / 4598 / 1060 Регистрация: 12.03.2015 Сообщений: 21,598 |
|
23.03.2023, 14:32 |
12 |
изначально изучение языка начали в VS и постоянно работали в нём А, ну это другое дело!
научиться кодить, а тут вон оно чо, Михалыч!
0 |
фрилансер 4796 / 4396 / 935 Регистрация: 11.10.2019 Сообщений: 11,584 |
|
23.03.2023, 14:40 |
13 |
using namespace std есть вот и плохо. Убирай его и везде к его идентификаторам приписывай Добавлено через 1 минуту Добавлено через 1 минуту
но через какое-то время появляется 90+ ошибок точно
0 |
Лежебока 296 / 215 / 92 Регистрация: 12.05.2021 Сообщений: 1,262 |
|
23.03.2023, 15:00 |
14 |
курсовая по с++, начала работу естественно в VS, не думаю что переходить на новую среду будет удобно Если там нет ничего супер-пупер навороченного, то попробуй другую среду(dev-c++, codeblocks),на крайняк можно онлайн компилятор
0 |
Вездепух 10915 / 5910 / 1615 Регистрация: 18.10.2014 Сообщений: 14,858 |
|
23.03.2023, 17:32 |
15 |
у меня тоже работает, до определенного момента, через какое-то время появляется ошибка, раньше чинить её получалось а вот сейчас никак Так не бывает и вы что-то выдумываете. Разумеется, если ошибка есть, то никакие «переходы на другую IDE» тут не помогут.
ошибка выделяет все строчки там где есть cout «Выделяет»? Что значит «выделяет»?
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
23.03.2023, 17:32 |
Помогаю со студенческими работами здесь Ошибка компиляции: «ref» не является однозначным «count» не является однозначным, проблема в коде Ошибка компиляции «Е0266, х не является однозначным» Есть класс Tank, являющийся наследником Rectangle, который, в свою очередь,… Странная ошибка volatile int count — count не является однозначным. Ещё про CloseHandle — для чего это? Найти причины ошибки: cout не является членом std Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 15 |
А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
В чем проблема?(
Подскажите пожаалулйстааа))))
#include
#include
using namespace std;
class country
{
public:
country();
country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
country(const country& CONTRY);
~country();
char* Returnname() { return name; };
double ReturnT_Winter() { return t_winter; };
double ReturnT_Spring() { return t_spring; };
double ReturnT_Summer() { return t_summer; };
double ReturnT_Autumn() { return t_autumn; };
friend ostream& operator<<(ostream& OUT, const country& COUNTRY);
friend istream& operator>>(istream& IN, country& COUNTRY);
country& operator=(const country& COUNTRY);
protected:
char* name;
double t_winter, t_spring, t_summer, t_autumn;
};
class NewCountry : public country {
public:
NewCountry();
NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
NewCountry(const NewCountry& COUNTRY);
~NewCountry();
unsigned short int gpolusharie() { return polusharie; };
string sReturnpolusharie();
friend ostream& operator<<(ostream& OUT, const NewCountry& COUNTRY);
friend istream& operator>>(istream& IN, NewCountry& COUNTRY);
NewCountry& operator=(const NewCountry& COUNTRY);
private:
unsigned short int polusharie;
};
country::country()
{
name = NULL;
t_winter = NULL;
t_spring = NULL;
t_summer = NULL;
t_autumn = NULL;
};
country::country(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn) :
name(new char[strlen(aname) + 1])
{
strcpy_s(name, strlen(aname) + 1, aname);
t_winter = at_winter;
t_spring = at_spring;
t_summer = at_summer;
t_autumn = at_autumn;
};
country::country(const country& COUNTRY) :
name(new char[strlen(COUNTRY.name) + 1])
{
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
};
country::~country()
{
delete[] name;
};
ostream& operator<<(ostream& Out, const country& COUNTRY)
{
Out << «nСТРАНА: » << COUNTRY.name << «nТЕМПЕРАТУРА ЗИМОЙ» << COUNTRY.t_winter << «nТЕМПЕРАТУРА ВЕСНОЙ» << COUNTRY.t_spring << «nТЕМПЕРАТУРА ЛЕТОМ» << COUNTRY.t_summer << «nТЕМПЕРАТУРА ОСЕНЬЮ » << COUNTRY.t_autumn;
return Out;
};
istream& operator>>(istream& In, country& COUNTRY)
{
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
};
country& country::operator=(const country& COUNTRY) {
if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
name = COUNTRY.name;
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
return *this;
};
NewCountry::NewCountry() :
country()
{
polusharie = NULL;
};
NewCountry::NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie) :
country(aname,at_winter, at_spring, at_summer, at_autumn)
{
polusharie = apolusharie;
};
NewCountry::NewCountry(const NewCountry& COUNTRY) :
country(COUNTRY)
{
polusharie = COUNTRY.polusharie;
};
NewCountry::~NewCountry()
{
delete[]name;
};
string NewCountry::sReturnpolusharie() {
if (polusharie == 1) return «северное»;
if (polusharie == 2) return «южное»;
if (polusharie == 3) return «по обе стороны экватора»;
return «!!!ОШИБКА:данные отсутствуют!!!»;
};
ostream& operator<<(ostream& Out, const NewCountry& COUNTRY)
{
Out << «nСТРАНА: » << COUNTRY.name << «nТЕМПЕРАТУРА ЗИМОЙ» << COUNTRY.t_winter << «nТЕМПЕРАТУРА ВЕСНОЙ» << COUNTRY.t_spring << «nТЕМПЕРАТУРА ЛЕТОМ» << COUNTRY.t_summer << «nТЕМПЕРАТУРА ОСЕНЬЮ » << COUNTRY.t_autumn;
Out << «nРАСПОЛОЖЕНИЕ ОТНОСИТЕЛЬНО ЭКВАТОРА: «;
if (COUNTRY.polusharie == 1) Out << «СЕВЕРНОЕ»;
if (COUNTRY.polusharie == 2) Out << «ЮЖНОЕ»;
if (COUNTRY.polusharie == 3) Out << «ПО ОБЕ СТОРОНЫ ЭКВАТОРА»;
return Out;
};
istream& operator>>(istream& In, NewCountry& COUNTRY)
{
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn >> COUNTRY.polusharie;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
};
NewCountry& NewCountry::operator=(const NewCountry& COUNTRY) {
if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
polusharie = COUNTRY.polusharie;
return *this;
};
void main() {
setlocale(LC_ALL, «Russian»);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
double winter = lol[0].ReturnT_Winter;
double summer = lol[0].ReturnT_Summer;
NewCountry* lol;
cout << «КОЛИЧЕСТВО СТРАН: «;
cin >> N;
lol = new NewCountry[N];
cout << «Введите данныеnНазвание страны , температура зимой,весной и летом, в каком полушарии находится (1 — северное, 2 — южное, 3 — по обе стороны экватора ):nn»;
for ( int i = 0; i < N; i++) cin >> lol[i];
for ( int i = 0; i < N; i++)
{
if (winter < lol[i].ReturnT_Winter())
winter = lol[i].ReturnT_Winter();
if (summer > lol[i].ReturnT_Summer ())
summer = lol[i].ReturnT_Summer();
}
};
cout << «nПроверка оператора =n»;
lol[0] = lol[1];
cout << lol[0] << endl;
cout << lol[1] << endl;
cout << «nПроверка конструктора копированияn»;
NewCountry Copy(lol[2]);
cout << Copy << endl;
cout << lol[2] << endl;
delete[] lol;
system(«pause»);
};
Содержание
- Как исправить ошибку «cout не является однозначным»?
- Как исправить ошибку «cout не является однозначным»?
- Неоднозначность переменной count
- Решение
- Cout не является однозначным ошибка c
- Решение
- Решение
- Идентификатор не объявлен The identifier is undeclared
- 1. Статическая инициализация
- Логические операторы
- Короткий цикл вычислений
- Пример: сбой выведения типа C++/CLI Example: C++/CLI type deduction failure
- А где же побитовое исключающее ИЛИ (XOR)?
Как исправить ошибку «cout не является однозначным»?
А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
В чем проблема?(
Подскажите пожаалулйстааа))))
#include
#include
using namespace std;
country();
country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
country(const country& CONTRY);
char* name;
double t_winter, t_spring, t_summer, t_autumn;
class NewCountry : public country <
public:
NewCountry();
NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
NewCountry(const NewCountry& COUNTRY);
unsigned short int gpolusharie() < return polusharie; >;
string sReturnpolusharie();
private:
unsigned short int polusharie;
>;
country::country()
<
name = NULL;
t_winter = NULL;
t_spring = NULL;
t_summer = NULL;
t_autumn = NULL;
>;
country::country(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn) :
name(new char[strlen(aname) + 1])
<
strcpy_s(name, strlen(aname) + 1, aname);
t_winter = at_winter;
t_spring = at_spring;
t_summer = at_summer;
t_autumn = at_autumn;
>;
ostream& operator >(istream& In, country& COUNTRY)
<
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
>;
country& country::operator=(const country& COUNTRY) <
if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
name = COUNTRY.name;
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
return *this;
>;
NewCountry::NewCountry() :
country()
<
polusharie = NULL;
>;
NewCountry::NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie) :
country(aname,at_winter, at_spring, at_summer, at_autumn)
<
polusharie = apolusharie;
>;
string NewCountry::sReturnpolusharie() <
if (polusharie == 1) return «северное»;
if (polusharie == 2) return «южное»;
if (polusharie == 3) return «по обе стороны экватора»;
return «. ОШИБКА:данные отсутствуют. «;
>;
ostream& operator >(istream& In, NewCountry& COUNTRY)
<
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn >> COUNTRY.polusharie;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
>;
NewCountry& NewCountry::operator=(const NewCountry& COUNTRY) <
if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
polusharie = COUNTRY.polusharie;
return *this;
>;
void main() <
setlocale(LC_ALL, «Russian»);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
double winter = lol[0].ReturnT_Winter;
double summer = lol[0].ReturnT_Summer;
NewCountry* lol;
cout > N;
lol = new NewCountry[N];
cout > lol[i];
for ( int i = 0; i lol[i].ReturnT_Summer ())
summer = lol[i].ReturnT_Summer();
>
>;
cout Вопрос задан более двух лет назад
Источник
Как исправить ошибку «cout не является однозначным»?
А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
В чем проблема?(
Подскажите пожаалулйстааа))))
#include
#include
using namespace std;
country();
country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
country(const country& CONTRY);
char* name;
double t_winter, t_spring, t_summer, t_autumn;
class NewCountry : public country <
public:
NewCountry();
NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
NewCountry(const NewCountry& COUNTRY);
unsigned short int gpolusharie() < return polusharie; >;
string sReturnpolusharie();
private:
unsigned short int polusharie;
>;
country::country()
<
name = NULL;
t_winter = NULL;
t_spring = NULL;
t_summer = NULL;
t_autumn = NULL;
>;
country::country(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn) :
name(new char[strlen(aname) + 1])
<
strcpy_s(name, strlen(aname) + 1, aname);
t_winter = at_winter;
t_spring = at_spring;
t_summer = at_summer;
t_autumn = at_autumn;
>;
ostream& operator >(istream& In, country& COUNTRY)
<
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
>;
country& country::operator=(const country& COUNTRY) <
if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
name = COUNTRY.name;
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
return *this;
>;
NewCountry::NewCountry() :
country()
<
polusharie = NULL;
>;
NewCountry::NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie) :
country(aname,at_winter, at_spring, at_summer, at_autumn)
<
polusharie = apolusharie;
>;
string NewCountry::sReturnpolusharie() <
if (polusharie == 1) return «северное»;
if (polusharie == 2) return «южное»;
if (polusharie == 3) return «по обе стороны экватора»;
return «. ОШИБКА:данные отсутствуют. «;
>;
ostream& operator >(istream& In, NewCountry& COUNTRY)
<
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn >> COUNTRY.polusharie;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
>;
NewCountry& NewCountry::operator=(const NewCountry& COUNTRY) <
if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
polusharie = COUNTRY.polusharie;
return *this;
>;
void main() <
setlocale(LC_ALL, «Russian»);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
double winter = lol[0].ReturnT_Winter;
double summer = lol[0].ReturnT_Summer;
NewCountry* lol;
cout > N;
lol = new NewCountry[N];
cout > lol[i];
for ( int i = 0; i lol[i].ReturnT_Summer ())
summer = lol[i].ReturnT_Summer();
>
>;
cout Вопрос задан более двух лет назад
Источник
Неоднозначность переменной count
Доброго времени суток. Использую VS2013. Подскажите пожалуйста, по какой причине глобальная переменная, в приведенном ниже коде, не является однозначной и во что её переименовать. Заранее спасибо!
PS/ Я совсем начинающий ученик, не судите строго)
Не компилируется код из-за переменной count
Подскажите count же в C++ не ключевое слово и ее можно использовать в виде переменной. Программный.
Нюансы синтаксиса: statement for — как понимать запись for (count=0, mask=1; count != 16; count++, mask 8
kailinka,
Рекомендую обращать внимание на компилятор и ИДЕ,если ему(ей) что-то не нравится лучше самостоятельно выяснить в чем проблема и, по возможности,исправить.
Вот у вас в функции func2/0 есть локальная переменная.Её обязательно называть count?
Какую переменную вы хотите,чтобы использовал компилятор?
Добавлено через 5 минут
Заодно можете ознакомится с темой:
Вопрос об области видимости переменной
S_el, локальная переменная просто «перекроет» глобальную. Проблема в using’е. В студии в неявно подрубается (или только некоторые объявления из него, не знаю).
kailinka, уберите using namespace std или назовите переменные count по другому.
В STL есть сущность с именем count, с ней и происходит конфликт имен.
using namespace std
Решение
Шилдт просто не мог предсказать как включаются заголовки в мелкомягком компиляторе. А так код вполне себе валидный.
Добавлено через 39 секунд
Спасибо! Получилось!
Добавлено через 11 минут
Получилось чтобы не выдавались ошибки, но программа при отладке пишет что то типа » cout не является внутренней или внешней командой, не является каким-то файлом», не успеваю прочитать более подробно т.к. не смотря на system(«Pausa>nul»); cmd оч быстро закрывается(.
Добавлено через 12 минут
Вопрос решила! Ругался как раз таки на system(«Pausa>nul»);, теперь буду искать решение проблемы с закрывающейся cmd. Всем большое спасибо за ответы!
Источник
Cout не является однозначным ошибка c
Дополнительные сведения о: Ошибка компилятора C2065
Решение
прежде чем любые другие включают директивы.
Решение
прежде чем любые другие включают директивы.
Я только начал разбираться с плюсами. И тут же воткнулся в какой-то непонятный для меня косяк.
Вроде все верно. Но при компиляции ошибка:
Я почитал у вас тут похожие темы. Пишут, что область имен надо объявить, она есть. Вроде вообще все как надо. Я использую VS 2017 для написания кода. Объясните, пожалуйста, что не так.
Двоичное дерево поиска
Задание. Построение и обработка двоичных деревьев поиска. Реализовать программу, выполняющую следующий набор операций с деревьями поиска:
поиск вершины с заданным значением ключа с выводом счетчика числа появлений данного ключа
добавление новой вершины в соответствии со значением ее ключа или увеличение счетчика числа появлений
построчный вывод дерева в наглядном виде с помощью обратно-симметричного обхода
вывод всех вершин в одну строку по порядку следования ключей с указанием для каждой вершины значения ее счетчика появлений
удаление вершины с заданным значением ключа
Выдает (в VS 2012) следующие ошибки:
Т. Е. он утв-ет что count не является однозначным и не определен
Идентификатор не объявлен The identifier is undeclared
Если идентификатор является переменной или именем функции, его необходимо объявить перед тем, как его можно будет использовать. If the identifier is a variable or a function name, you must declare it before it can be used. Перед использованием функции в объявлении функции также должны быть включены типы его параметров. A function declaration must also include the types of its parameters before the function can be used. Если переменная объявлена с помощью auto , компилятор должен иметь возможность определить тип из его инициализатора. If the variable is declared using auto, the compiler must be able to infer the type from its initializer.
Если идентификатор является членом класса или структуры или объявлен в пространстве имен, он должен уточняться именем класса или структуры или именем пространства имен при использовании вне структуры, класса или области пространства имен. If the identifier is a member of a class or struct, or declared in a namespace, it must be qualified by the class or struct name, or the namespace name, when used outside the struct, class, or namespace scope. Кроме того, пространство имен должно быть помещено в область с помощью using директивы, такой как using namespace std; , или имя члена должно быть помещено в область с помощью using объявления, такого как using std::string; . Alternatively, the namespace must be brought into scope by a using directive such as using namespace std;, or the member name must be brought into scope by a using declaration, such as using std::string;. В противном случае неполное имя считается необъявленным идентификатором в текущей области. Otherwise, the unqualified name is considered to be an undeclared identifier in the current scope.
Если идентификатор является тегом для определяемого пользователем типа, например, class или struct , тип тега должен быть объявлен до его использования. If the identifier is the tag for a user-defined type, for example, a class or struct, the type of the tag must be declared before it can be used. Например, объявление struct SomeStruct < /*…*/ >; должно существовать, прежде чем можно будет объявить переменную SomeStruct myStruct; в коде. For example, the declaration struct SomeStruct < /*…*/ >; must exist before you can declare a variable SomeStruct myStruct; in your code.
Если идентификатор является псевдонимом типа, тип должен быть объявлен с помощью using объявления или typedef перед тем, как его можно будет использовать. If the identifier is a type alias, the type must be declared by using a using declaration or typedef before it can be used. Например, необходимо объявить, using my_flags = std::ios_base::fmtflags; прежде чем можно будет использовать my_flags в качестве псевдонима типа для std::ios_base::fmtflags . For example, you must declare using my_flags = std::ios_base::fmtflags; before you can use my_flags as a type alias for std::ios_base::fmtflags.
1. Статическая инициализация
При создании статической переменной, возникает вопрос, когда эта переменная будет инициализирована, сколько времени она проживёт и когда будет уничтожена? Статическая инициализация позволяет нам создать переменную, которая будет инициализирована до запуска программы со временем жизни в течение всей программы и уничтожении после завершения. Такие константные переменные не зависят от исполнения — они всегда существуют, создаются во время компиляции и располагаются в исполнимом файле (в бинарнике). Как результат: нулевые накладные расходы, ранняя диагностика проблем и безопасность. Вопрос об использовании статической инициализации напрямую зависит от предметной области разрабатываемого проекта — чем ниже уровень, тем соблазн использования выше, а иногда и критичен, тут скорость решает всё.
Логические операторы
В то время как операторы сравнения используются для проверки конкретного условия: ложное оно или истинное, они могут проверить только одно условие за определенный промежуток времени. Но бывают ситуации, когда нужно протестировать сразу несколько условий. Например, чтобы узнать, выиграли ли мы в лотерею, нам нужно сравнить все цифры купленного билета с выигрышными. Если в лотерее 6 цифр, то нужно выполнить 6 сравнений, все из которых должны быть true.
Также иногда нам нужно знать, является ли хоть одно из нескольких условий истинным. Например, мы не пойдем сегодня на работу, если больны или слишком устали, или если выиграли в лотерею. Нам нужно проверить, является ли хоть одно из этих 3-х условий истинным. Как это сделать? С помощью логических операторов! Они позволяют проверить сразу несколько условий за раз.
В языке C++ есть 3 логических оператора:
Оператор | Символ | Пример | Операция |
Логическое НЕ | ! | !x | true, если x — false и false, если x — true |
Логическое И | && | x && y | true, если x и y — true, в противном случае — false |
Логическое ИЛИ | || | x || y | true, если x или y — true, в противном случае — false |
Короткий цикл вычислений
Для того, чтобы логическое И возвращало true, оба операнда должны быть истинными. Если первый операнд вычисляется как false, то оператор И должен сразу возвращать false независимо от результата второго операнда (даже без его обработки). Это называется коротким циклом вычисления (англ. «short circuit evaluation») и выполняется он, в первую очередь, в целях оптимизации.
Аналогично, если первый операнд логического ИЛИ является true, то и всё условие будет true (даже без обработки второго операнда).
Как и в случае с оператором ИЛИ, новички иногда путают логическое И (&&) с побитовым И (&).
Пример: сбой выведения типа C++/CLI Example: C++/CLI type deduction failure
Эта ошибка может возникать при вызове универсальной функции, если аргумент предполагаемого типа не может быть выведен из используемых параметров. This error can occur when calling a generic function, if the intended type argument cannot be deduced from the parameters used. Дополнительные сведения см. в разделе универсальные функции (C++/CLI). For more information, see Generic Functions (C++/CLI).
А где же побитовое исключающее ИЛИ (XOR)?
Побитовое исключающее ИЛИ (XOR) — это логический оператор, который используется в некоторых языках программирования для проверки на истинность нечётного количества условий.
Побитовое исключающее ИЛИ (XOR) | ||
Левый операнд | Правый операнд | Результат |
false | false | false |
false | true | true |
true | false | true |
true | true | false |
В языке C++ нет такого оператора. В отличии от логических И/ИЛИ, к XOR не применяется короткий цикл вычислений. Однако его легко можно сымитировать, используя оператор неравенства (!=):
if ( a != b ) . . . // a XOR b (предполагается, что a и b имеют тип bool)
Можно также расширить количество операндов:
if ( a != b != c != d ) . . . // a XOR b XOR c XOR d (предполагается, что a, b, c и d имеют тип bool)
Следует отметить, что вышеприведенные шаблоны XOR работают только, если операнды имеют логический (а не целочисленный) тип данных. Если вы хотите, чтобы это работало и с целыми числами, то используйте оператор static_cast.
Форма XOR, которая работает и с другими типами данных (с помощью оператора static_cast мы можем конвертировать любой тип данных в тип bool):
if ( static_cast bool > ( a ) != static_cast bool > ( b ) != static_cast bool > ( c ) != static_cast bool > ( d ) ) . . . // a XOR b XOR c XOR d, для любого типа, который может быть конвертирован в тип bool
Источник
Позвольте мне предвосхитить это, сказав, что я включил (также относится к string, endl, и буквально все не работает); моя IDE не показывает ошибок, насколько синтаксис идет; и я не могу понять, почему эта проблема происходит? Он отлично работает в одном из моих других примеров кода C ++, которые я написал.
Поэтому я пытаюсь сделать небольшую игру, быков и коров. Мой основной код выглядит следующим образом:
Наконец, мой файл BullsAndCows.cpp:
Ошибки, которые я получаю, так как «cout не является членом std», символ cout не может использоваться в объявлении использования. До этого я использовал «использование пространства имен std», и это возвращало бы ошибки, такие как «BullsAndCows» не является пространством имен или классом (если это не класс, то я должен быть марсианином). Также кое-что о пропавшем «;» перед userInput, например, в моем коде main.cpp; что не имеет смысла, так как нет ничего, что не хватает этого. Я использую VS2017. Почему C ++ такой раздражающий язык для работы?
Решение
прежде чем любые другие включают директивы.
Я только начал разбираться с плюсами. И тут же воткнулся в какой-то непонятный для меня косяк.
Вроде все верно. Но при компиляции ошибка:
Я почитал у вас тут похожие темы. Пишут, что область имен надо объявить, она есть. Вроде вообще все как надо. Я использую VS 2017 для написания кода. Объясните, пожалуйста, что не так.
Двоичное дерево поиска
Задание. Построение и обработка двоичных деревьев поиска. Реализовать программу, выполняющую следующий набор операций с деревьями поиска:
поиск вершины с заданным значением ключа с выводом счетчика числа появлений данного ключа
добавление новой вершины в соответствии со значением ее ключа или увеличение счетчика числа появлений
построчный вывод дерева в наглядном виде с помощью обратно-симметричного обхода
вывод всех вершин в одну строку по порядку следования ключей с указанием для каждой вершины значения ее счетчика появлений
удаление вершины с заданным значением ключа
Выдает (в VS 2012) следующие ошибки:
Т. Е. он утв-ет что count не является однозначным и не определен
807
чатов
React — русскоговорящее с…
Binance Russian
Android Developers
Python
Vue.js — русскоговорящее …
supapro.cxx
GNU/Linux Help
DotNetRuChat
Telegram Developers
Node.js — русскоговорящее…
DevOps — русскоговорящее …
JavaScript Noobs — сообще…
Django [ru]
Go-go!
ntwrk
Angular — русскоговорящее…
Верстка сайтов HTML/CSS/J…
phpGeeks
Kubernetes — русскоговоря…
MODX. Русскоязычное сообщ…
Смотреть еще
supapro.cxx
Taras Bratyshchenko 🦄
russian
web-design
13:36 09.12.2018
1
ответов
Taras Bratyshchenko 🦄
Автор вопроса
в visual studio куча подчёркиваний, но всё работает
13:37 09.12.2018
Похожие вопросы
supapro.cxx
kwanji/Nama Palsyami
Как восстановить последнюю рабочую версию программы? Конкретно код
web-design
russian
18
сегодня в 15:08
supapro.cxx
Артур
Ребят, что скажете об этих двух способах написания программы?
int main() {
….
}
И
int main()
{
….
}
Мне кажется, первый способ намного красивее и удобочитаемее, н…
web-design
russian
12
сегодня в 08:03
supapro.cxx
Даниил
Розанов
Всем привет. Вопрос, как можно безопасно вставлять значения в строку для sql запроса, не используя qt’шный QSqlQuery. Может в boost есть какая нибудь функция?
web-design
russian
10
сегодня в 10:46
supapro.cxx
Линуксяша
А как научиться хорошо понимать чужой код?
web-design
russian
7
сегодня в 03:25
supapro.cxx
Линуксяша
А как понять, говнокод мой код или не очень?
web-design
russian
6
сегодня в 03:24
supapro.cxx
anton
o/ а как сделать, чтоб это заработало? (хочется, чтоб везде вывелся int из 5) https://godbolt.org/z/ozbK3jK1T
web-design
russian
6
сегодня в 12:01
supapro.cxx
faust403
Faust
Ну то есть ты хочешь сказать что использование вима само по себе это клеймо что человеку явно больше 30-ти?
web-design
russian
6
сегодня в 18:24
supapro.cxx
Stepan
Zorin
Потому что вопрос не про сам С++ и не про код на нём, а примерно о том «на какой булке на жопе удобнее сидеть?»
web-design
russian
4
сегодня в 08:30
supapro.cxx
empty
Добрый день. Один вопрос по boost. Можете подсказать, какие библиотеки из него часто встречаются на беке? Boost asio понятно, мб ещё есть
web-design
russian
3
сегодня в 10:19
supapro.cxx
Vitalii
? + replace? Только безопасно?
web-design
russian
3
сегодня в 10:48
Смотреть еще
This kind of thing doesn’t just magically happen on its own; you changed something! In industry we use version control to make regular savepoints, so when something goes wrong we can trace back the specific changes we made that resulted in that problem.
Since you haven’t done that here, we can only really guess. In Visual Studio, Intellisense (the technology that gives you auto-complete dropdowns and those squiggly red lines) works separately from the actual C++ compiler under the bonnet, and sometimes gets things a bit wrong.
In this case I’d ask why you’re including both cstdlib
and stdlib.h
; you should only use one of them, and I recommend the former. They are basically the same header, a C header, but cstdlib
puts them in the namespace std
in order to «C++-ise» them. In theory, including both wouldn’t conflict but, well, this is Microsoft we’re talking about. Their C++ toolchain sometimes leaves something to be desired. Any time the Intellisense disagrees with the compiler has to be considered a bug, whichever way you look at it!
Anyway, your use of using namespace std
(which I would recommend against, in future) means that std::system
from cstdlib
now conflicts with system
from stdlib.h
. I can’t explain what’s going on with std::cout
and std::cin
.
Try removing #include <stdlib.h>
and see what happens.
If your program is building successfully then you don’t need to worry too much about this, but I can imagine the false positives being annoying when you’re working in your IDE.