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

knf

17 / 17 / 8

Регистрация: 18.09.2012

Сообщений: 184

1

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

23.02.2013, 15:31. Показов 5137. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

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
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
 
#define eof -1
#define maxline 1000
int getline(char s[] ,int lim);
int main()
{   char s[maxline];
    int y;
    
    printf("Enter your string n");
 
    y=getline(s[],256);
 
    return 0;
}
int getline(char s[], int lim)
{   int c,i;
    
    for (i=0; i<lim-1 && (c=getchar()) != eof && c != 'n'; i++)
        s[i]=c;
        s[i]='';
        i++;
 
    return(i);
}

error C2059: синтаксическая ошибка: ]
Не пойму почему… Точно знаю, что при вызове функции…



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

23.02.2013, 15:31

7

The_bolT

73 / 73 / 12

Регистрация: 22.01.2013

Сообщений: 231

23.02.2013, 15:33

2

C++
1
y=getline(s,256);



1



401 / 312 / 74

Регистрация: 17.03.2010

Сообщений: 1,119

23.02.2013, 15:35

3



0



knf

17 / 17 / 8

Регистрация: 18.09.2012

Сообщений: 184

24.02.2013, 15:08

 [ТС]

4

The_bolT, Получилось. Просто я уже убирал эти скобки и выдавало другую ошибку, а тут я написал так

C++
1
int getline(char s[] ,int lim)

а не

C++
1
int getline(char ,int )

и получилось..

Добавлено через 23 часа 31 минуту
Есть еще вопрос, не пойму где ошибки(

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
 
float sum();
float razn();
float del();
float proizv();
float degree();
float fact();
 
 
int main()
{   
    
    int x,c;
    float s;
    printf("Bb|bepute deu`ctBue");
    scanf("%d",&c);
    switch(c)
    {
        case '+' : 
            sum(); 
            s=sum();
            break;
        case '-' : 
            razn();
            s=razn();
            break;
        case '/' : 
            del();
            s=fact();
            break;
        case '*' : 
            proizv();
             s=proizv();
            break;
        case '^' : 
            degree();
            s=degree();
            break;
        case '!' : 
            fact();
             s=fact();
            break;
        default : 
            printf("Error! No such action!"); 
            break;
    }
    
    
    printf("%0.f",s);
    getch();
    
    return 0;
    
}
float sum()
{   float rez;
    float a;
    float b;
    a=b=0;
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a+b;
    return rez;
}
 
float razn()
{   float rez;
    float a;
    float b;
    
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a-b;
    return rez;
}
float del()
{   float rez;
    float a;
    float b;
    
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a/b;
    return rez;
 
}
 
float proizv()
{   float rez;
    float a;
    float b;
 
    
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a*b;
    return rez;
 
}
 
 
 
float degree()
{
    float rez,a,b;
    
    printf("BBedute 4ucJIo u cteIIeHbn");
    scanf("%f %f",&a,&b);
    
    rez=pow(a,b);
    
    return rez;
}
 
float fact()
{   float a,b;
    float rez=1;
    int i=0;
    printf("BBedute 4ucJIon");
    scanf("%f",&a);
    for (i=1; i=<a; i++)
        rez=rez*i;
    return rez;
}

error C2059: синтаксическая ошибка: <
error C2143: синтаксическая ошибка: отсутствие «;» перед «)»
error C2143: синтаксическая ошибка: отсутствие «;» перед «)»



0



Каратель

Эксперт С++

6608 / 4027 / 401

Регистрация: 26.03.2010

Сообщений: 9,273

Записей в блоге: 1

24.02.2013, 15:15

5

Цитата
Сообщение от knf
Посмотреть сообщение

Есть еще вопрос, не пойму где ошибки(

компилятор же пишет в какой строке ошибка



0



17 / 17 / 8

Регистрация: 18.09.2012

Сообщений: 184

24.02.2013, 15:24

 [ТС]

6

Jupiter, 1>c:usersкомпdocumentsvisual studio 2010projects333.cpp(126): error C2059: синтаксическая ошибка: <
где тут написана строка?

Добавлено через 1 минуту
Догадываюсь что (126)

Добавлено через 2 минуты
а нет..

Добавлено через 2 минуты
Все разобрался!



0



KostyaKulakov

Заблокирован

24.02.2013, 15:26

7

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
 
float sum();
float razn();
float del();
float proizv();
float degree();
float fact();
 
 
int main()
{   
    
    int x,c;
    float s;
    printf("Bb|bepute deu`ctBue");
    scanf("%d",&c);
    switch(c)
    {
        case '+' : 
            sum(); 
            s=sum();
            break;
        case '-' : 
            razn();
            s=razn();
            break;
        case '/' : 
            del();
            s=fact();
            break;
        case '*' : 
            proizv();
             s=proizv();
            break;
        case '^' : 
            degree();
            s=degree();
            break;
        case '!' : 
            fact();
             s=fact();
            break;
        default : 
            printf("Error! No such action!"); 
            break;
    }
    
    
    printf("%0.f",s);
    getch();
    
    return 0;
    
}
float sum()
{   float rez;
    float a;
    float b;
    a=b=0;
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a+b;
    return rez;
}
 
float razn()
{   float rez;
    float a;
    float b;
    
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a-b;
    return rez;
}
float del()
{   float rez;
    float a;
    float b;
    
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a/b;
    return rez;
 
}
 
float proizv()
{   float rez;
    float a;
    float b;
 
    
    printf("BBedute 2 4ucJIan");
    scanf("%f %f",&a,&b);
    rez=a*b;
    return rez;
 
}
 
 
 
float degree()
{
    float rez,a,b;
    
    printf("BBedute 4ucJIo u cteIIeHbn");
    scanf("%f %f",&a,&b);
    
    rez=pow(a,b);
    
    return rez;
}
 
float fact()
{   float a,b;
    float rez=1;
    int i=0;
    printf("BBedute 4ucJIon");
    scanf("%f",&a);
    for (i=1; i <= a; ++i)
        rez*=i;
    return rez;
}



0



knf

17 / 17 / 8

Регистрация: 18.09.2012

Сообщений: 184

24.02.2013, 16:37

 [ТС]

8

Цитата
Сообщение от KostyaKulakov
Посмотреть сообщение

C++
1
for (i=1; i <= a; ++i)

Вот где

Добавлено через 48 минут
Опять вопрос по этому же коду.
Функция sum полностью для вещественных чисел, она и складывает вещественные и возвращает вещественное.
Вот я запускаю, ввожу +, ввожу 4.2 3.8 и он мне снова введите два числа..

Добавлено через 9 минут
Опять нашел)



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

24.02.2013, 16:37

Помогаю со студенческими работами здесь

Синтаксическая ошибка!))
Вот код:
====================================================================
#include &lt;iostream&gt;…

Синтаксическая ошибка
Здраствуйте. Помогите, пожайлуста, выявить синтаксическую ошибку в коде:

#include &lt;fstream&gt;…

Синтаксическая ошибка
Ошибка 4 error C2065: Y: необъявленный идентификатор C:UsersstudentDesktopЯзыки…

синтаксическая ошибка
#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
#include &lt;io.h&gt;
#include &lt;ctime&gt;

using namespace std;…

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

Или воспользуйтесь поиском по форуму:

8

I’m getting this error «Error C2059 syntax error: ‘public'» in the first «public» of the HelloWorld.h file when I try to build the project. Looks like it’s expecting something else but I’m a rookie on this. I have also tried using ref instead of __gc as the new syntax rules.

Does anybody have a clue of what can be missing here?

Thanks in advance.

HelloWorld.h

#using <mscorlib.dll>
#using "CSharpHelloWorld.netmodule"

using namespace System;

public __gc class HelloWorldC
{
    public:
        // Provide .NET interop and garbage collecting to the pointer.
        CSharpHelloWorld __gc *t;
        HelloWorldC() {
            t = new CSharpHelloWorld();
            // Assign the reference a new instance of the object
        }

     // This inline function is called from the C++ Code
        void callCSharpHelloWorld() {
            t->displayHelloWorld();
        }
};

asked Feb 26, 2015 at 16:27

Neikon's user avatar

6

  1. use ref class instead of __gc class in line 6
  2. use ^ instead of __gc * in line 10
  3. use gcnew instead of new in line 12 change
  4. Common Language Runtime Support To (/clr) in your project Properties

Hossein's user avatar

Hossein

3,0733 gold badges16 silver badges33 bronze badges

answered Feb 27, 2015 at 6:48

Pedramphhi's user avatar

1

Несколько вещей.

Почему вы предоставляете определение методов в заголовочных файлах?

//file:CCos.h
#ifndef COS_H
#define COS_H

 #include "UnaryOp.h"

 class  Cos: public UnaryOp{
  public:
    Cos(Term * l):UnaryOp(l){};
    virtual ~ Cos(){};
    virtual string symbolicEval(){
    ostringstream oss;
    oss << "cos(x)" << endl;
    return oss.str();
  };
    virtual double numericalEval(double X){
    return cos(Child->numericalEval(X));
  }

  }
  #endif COS_H

Если вы используете «{}» после объявления метода в файле «.H», не могли бы вы объяснить, что это значит? Как это понимает компилятор?

Когда вы используете двоеточие? Это после объявления метода или после определения или для обоих?

.H файлы скомпилированы? Зачем? почему бы и нет?

Если бы вы могли ответить на них, у вас есть свой ответ. Это больше домашнее задание. Просим вас публиковать только актуальные и только те вопросы, по которым вам нужна техническая помощь.

Я пишу программу дерева алгебры. Во время компиляции у меня появилось много ошибок. Я не знаю, откуда берутся ошибки.

Вот мой код:

//file: Term.h
#ifndef TERM
#define TERM
#include <sstream>
#include <string>
using namespace std;

class Term {
public:
  Term() {}
  virtual ~Term() {}
  virtual string symbolicEval() = 0;
  virtual double numericalEval(double X) = 0;
};  
 #endif

//file: UnaryOp.h
#ifndef UNARYOP
#define UNARYOP
#include "Term.h";

class UnaryOp: public Term{
protected:
   Term* Child;
public:
   UnaryOp(Term* l){Child = l;};
   virtual ~UnaryOp(){delete Child;};
   virtual string symbolicEval(){};
  virtual double numericalEval(){};

};
#endif UNARYOP

//file:CCos.h
#ifndef COS_H
#define COS_H

 #include "UnaryOp.h"

 class  Cos: public UnaryOp{
  public:
    Cos(Term * l):UnaryOp(l){};
    virtual ~ Cos(){};
    virtual string symbolicEval(){
    ostringstream oss;
    oss << "cos(x)" << endl;
    return oss.str();
  };
    virtual double numericalEval(double X){
    return cos(Child->numericalEval(X));
  }

  }
  #endif COS_H

При компиляции я получил следующие ошибки:

1>c:usersadministratordesktopalgebraalgebraunaryop.h(3): warning C4067: unexpected tokens following preprocessor directive - expected a newline
1>c:usersadministratordesktopalgebraalgebraccos.h(6): error C2236: unexpected 'class' 'Cos'. Did you forget a ';'?
1>c:usersadministratordesktopalgebraalgebraccos.h(6): error C2143: syntax error : missing ';' before ':'
1>c:usersadministratordesktopalgebraalgebraccos.h(6): error C2059: syntax error : ':'
1>c:usersadministratordesktopalgebraalgebraccos.h(6): error C2059: syntax error : 'public'
1>c:usersadministratordesktopalgebraalgebraccos.h(6): error C2143: syntax error : missing ';' before '{'
1>c:usersadministratordesktopalgebraalgebraccos.h(6): error C2447: '{' : missing function header (old-style formal list?)
1>c:usersadministratordesktopalgebraalgebraalgebra.cpp(29): error C2061: syntax error : identifier 'Cos'

Может кто-нибудь подскажет мне, где я ошибаюсь?

13 нояб. 2014, в 06:28

Поделиться

Источник

3 ответа

Начните с замены

#include "Term.h";

от

#include "Term.h"

(может быть, что-то не так). И в самом деле, первое сообщение об ошибке точно сообщило вам, что препроцессор ожидал новую строку, где вы написали точку с запятой, поэтому в следующий раз сначала прочтите сообщения об ошибках.

Doc Brown
13 нояб. 2014, в 03:42

Поделиться

Несколько вещей.

Почему вы предоставляете определение методов в файлах заголовков?

//file:CCos.h
#ifndef COS_H
#define COS_H

 #include "UnaryOp.h"

 class  Cos: public UnaryOp{
  public:
    Cos(Term * l):UnaryOp(l){};
    virtual ~ Cos(){};
    virtual string symbolicEval(){
    ostringstream oss;
    oss << "cos(x)" << endl;
    return oss.str();
  };
    virtual double numericalEval(double X){
    return cos(Child->numericalEval(X));
  }

  }
  #endif COS_H

Если вы используете «{}» после объявления метода в файле «.H», не могли бы вы объяснить, что это значит? Как это понимает компилятор?

Когда вы используете двоеточие? Это после объявления метода или после определения или для обоих?

Скомпилированы ли файлы.h? Зачем? почему нет?

Если бы вы могли ответить на них, у вас есть свой ответ. Это скорее домашнее задание. Попросите вас разместить только релевантные и только те вопросы, для которых вам нужна техническая помощь.

kris123456
13 нояб. 2014, в 02:49

Поделиться

вам не хватает замыкающей скобки виртуальной функции symbolicEval().

Ali Kazmi
13 нояб. 2014, в 03:57

Поделиться

Ещё вопросы

  • 0Jquery меню не прячется при отпускании мыши
  • 1VideoView воспроизводится нормально, но не отображается при переключении полноэкранных представлений
  • 1XSLT: установить имя преобразованного выходного файла
  • 1Как удалить LF в XML-файлах для получения однострочного XML-файла?
  • 1Сгруппируйте по столбцам в Dataframe и создайте отдельный CSV для всей группы
  • 0загрузить плагин JQuery и JQuery до загрузки HTML
  • 0ОШИБКА 1055 (42000): Выражение № 1 списка SELECT отсутствует в предложении GROUP BY … это несовместимо с sql_mode = only_full_group_by [duplicate]
  • 1Обобщения: «Синтаксическая ошибка на токене» расширяется «, ожидается»
  • 0Могу ли я передавать обработанный видеовыход из OpenCV на ПК на планшет с Android?
  • 0Существует ли кроссплатформенная библиотека для событий файловой системы?
  • 0Концепция полиморфизма C ++
  • 1C # Reflection: В чем разница между FieldInfo.SetValue () и FieldInfo.SetValueDirect ()?
  • 1Извлечь текст из epub в Python
  • 0JavaScript извлекает значение innerHTML из класса, который использует несколько тегов
  • 0Meshlabserver: не удается подключиться к X-серверу ошибка
  • 1Как сделать номера телефонов кликабельными в текстовом представлении в Android
  • 1считать длину поля поиска в динамике crm
  • 1скачать номера в игровом магазине и играть в приставку разные
  • 0php простой поиск по регулярному выражению, замена и перемешивание подстроки
  • 1Как установить значение месяца на основе количества
  • 0Установка цвета границы с помощью jquery
  • 1Как реализовать индикатор выполнения в wpf?
  • 0Как я могу вставить количество в эту корзину php
  • 0PHP: как вернуть счетчик значения из рекурсивной функции?
  • 1Тестирование Junit: тестирование всех возможных границ?
  • 0Передача функции constexpr для использования во время компиляции
  • 1Как BigInteger интерпретирует байты из строки?
  • 0Как сгенерировать серийный номер при выборе всех данных из таблицы?
  • 0Как я могу заставить пишущую машинку Jquery / Javascript распознавать пробельные символы?
  • 1Как сравнить Resultset.getString () с String в Java?
  • 0C ++ Help. Массивы не работают с целыми числами
  • 1Arduino мигает светодиод на нажатой кнопке приложения c #
  • 0QDialog закрашивает виджеты черным при добавлении новых
  • 0Regex Lookahead проблема и улучшение
  • 0Сохраняйте отзывчивые встроенные блоки расположенными с помощью переносимых текстовых слов
  • 0Rails Ajax Form: не могу понять, что я делаю не так
  • 0Выровняйте горизонтальные изображения и текстовые ссылки внутри ul
  • 1Расширение MVC — привязка модифицированного лямбда-выражения
  • 1Невозможно получить какой-либо ответ от API (залп)
  • 1Восстанавливаемое веб-задание Azure (не удалять из очереди)
  • 0Сортировать массив от высокого к низкому
  • 1dataContractSerializer известных типов
  • 0Данные JSON не загружаются в Angular JS
  • 1Как можно создать / удалить файлы в / data / data dir с помощью root в Android?
  • 0Бит манипуляции тильда
  • 0Преобразование координат SVG в координаты карты изображения HTML
  • 0MySQL не запускается в панели управления Xampp в Windows 8.1
  • 0Как получить экземпляр выбранного в данный момент li с помощью JQuery
  • 0Цикл по соединениям с базой данных
  • 0MySQLdb Ошибка подключения к базе данных

Сообщество Overcoder

description title ms.date f1_keywords helpviewer_keywords ms.assetid

Learn more about: Compiler Error C2059

Compiler Error C2059

03/26/2019

C2059

C2059

2be4eb39-3f37-4b32-8e8d-75835e07c78a

Compiler Error C2059

syntax error : ‘token’

The token caused a syntax error.

The following example generates an error message for the line that declares j.

// C2059e.cpp
// compile with: /c
// C2143 expected
// Error caused by the incorrect use of '*'.
   int j*; // C2059

To determine the cause of the error, examine not only the line that’s listed in the error message, but also the lines above it. If examining the lines yields no clue about the problem, try commenting out the line that’s listed in the error message and perhaps several lines above it.

If the error message occurs on a symbol that immediately follows a typedef variable, make sure that the variable is defined in the source code.

C2059 is raised when a preprocessor symbol name is re-used as an identifier. In the following example, the compiler sees DIGITS.ONE as the number 1, which is not valid as an enum element name:

#define ONE 1

enum class DIGITS {
    ZERO,
    ONE // error C2059
};

You may get C2059 if a symbol evaluates to nothing, as can occur when /Dsymbol= is used to compile.

// C2059a.cpp
// compile with: /DTEST=
#include <stdio.h>

int main() {
   #ifdef TEST
      printf_s("nTEST defined %d", TEST);   // C2059
   #else
      printf_s("nTEST not defined");
   #endif
}

Another case in which C2059 can occur is when you compile an application that specifies a structure in the default arguments for a function. The default value for an argument must be an expression. An initializer list—for example, one that used to initialize a structure—is not an expression. To resolve this problem, define a constructor to perform the required initialization.

The following example generates C2059:

// C2059b.cpp
// compile with: /c
struct ag_type {
   int a;
   float b;
   // Uncomment the following line to resolve.
   // ag_type(int aa, float bb) : a(aa), b(bb) {}
};

void func(ag_type arg = {5, 7.0});   // C2059
void func(ag_type arg = ag_type(5, 7.0));   // OK

C2059 can occur for an ill-formed cast.

The following sample generates C2059:

// C2059c.cpp
// compile with: /clr
using namespace System;
ref class From {};
ref class To : public From {};

int main() {
   From^ refbase = gcnew To();
   To^ refTo = safe_cast<To^>(From^);   // C2059
   To^ refTo2 = safe_cast<To^>(refbase);   // OK
}

C2059 can also occur if you attempt to create a namespace name that contains a period.

The following sample generates C2059:

// C2059d.cpp
// compile with: /c
namespace A.B {}   // C2059

// OK
namespace A  {
   namespace B {}
}

C2059 can occur when an operator that can qualify a name (::, ->, and .) must be followed by the keyword template, as shown in this example:

template <typename T> struct Allocator {
    template <typename U> struct Rebind {
        typedef Allocator<U> Other;
    };
};

template <typename X, typename AY> struct Container {
    typedef typename AY::Rebind<X>::Other AX; // error C2059
};

By default, C++ assumes that AY::Rebind isn’t a template; therefore, the following < is interpreted as a less-than sign. You must tell the compiler explicitly that Rebind is a template so that it can correctly parse the angle bracket. To correct this error, use the template keyword on the dependent type’s name, as shown here:

template <typename T> struct Allocator {
    template <typename U> struct Rebind {
        typedef Allocator<U> Other;
    };
};

template <typename X, typename AY> struct Container {
    typedef typename AY::template Rebind<X>::Other AX; // correct
};

Понравилась статья? Поделить с друзьями:
  • Синтаксическая ошибка private
  • Синтаксическая ошибка mprg
  • Синтаксическая ошибка lenovo
  • Синтаксическая ошибка javascript
  • Синоним слова роковая ошибка