Я продолжаю получать синтаксическую ошибку, но я не уверен, почему

#c #syntax-error

#c #синтаксическая ошибка

Вопрос:

Я не уверен, почему я получаю ошибку C2143: синтаксическая ошибка: отсутствует ‘;’ перед ‘==’ Был бы очень признателен, если бы кто-нибудь объяснил мою ошибку.

 #include <iostream>
#include <string>
#include <cstdlib>

int main() {

std::cout << "What is your name? ";
std::string name;
std::cin >> name;
const std::string greeting = "Hello "   name   " !";
//
const int pad = 1;
const int rows = pad * 2   3;
std::cout << std::endl;
//
int r = 0;
while (r != rows) {
    std::cout << std::endl;
      r;
}
//
std::string::size_type cols = greeting.size()   pad * 2   2;
std::string::size_type c == 0;
while (c != cols) {
    if (r == 0 || r == rows -1 || c == 0 || c == cols -1) {
    } else {
    }
}

std::system("pause");

return 0;
};
  

Комментарии:

1. в будущем номер строки ошибки был бы наиболее полезен.

Ответ №1:

Я подозреваю, что проблема здесь:

 std::string::size_type c == 0;
  

Вероятно, это должно быть:

 std::string::size_type c = 0;
  

Ответ №2:

Эта строка:

 std::string::size_type c == 0;
  

должно быть:

 std::string::size_type c = 0;
  

Ответ №3:

Вы еще не инициализировали ‘c’.

std::string::size_type c == 0;

должно быть

std::string::size_type c = 0;

Комментарии:

1. True ( 1), но это не имеет отношения к тому, что переменная не была инициализирована; это просто недопустимая грамматическая конструкция.

Ответ №4:

проблема в том, что

 std::string::size_type c == 0; 
  

когда должно быть

 std::string::size_type c = 0;
  

это должен быть один оператор равенства (оператор присваивания).