Error expected primary expression before token перевод

Ошибка: expected primary-expression before ')' token C++ Решение и ответ на вопрос 2329034
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>  
 
#define MAX_SIZE 30
 
typedef struct User_t 
{ 
    char  *login; 
    char  *password; 
    char  *name;
    char  *sex; 
    int    age;
    int    id;  
    float  height; 
    float  weight;
}User;
 
 
/*+*/void clean_memory(User** users, unsigned size)
{
int i;
    for(i=0;i<size;i++)
    {
        free((*users)[size].login);
        free((*users)[size].password);
        free((*users)[size].name);
        free((*users)[size].sex);
    }
free(*users);
*users = NULL;
} 
 
/*+*/void output_f(User** users) 
{ 
int value,n,i;
    printf ("1 - output single data");
    printf ("2 - output all data");
    printf ("select an action : n");
        scanf ("%d",&n);
    switch(n)
    {
        case 1:
            printf ("Input user's id");
                scanf ("%d",value);
            printf ("{id: %d, login: "%s", password: "%s"}n{ name: "%s", sex: "%s", age: %d}n { height:%f, weight:%f}n",
                    (*users)[value].id,(*users)[value].login,(*users)[value].password,(*users)[value].name,(*users)[value].sex,
                (*users)[value].age,(*users)[value].height,(*users)[value].weight);
        break;
        case 2:
            for(i=0;i<value;i++)
                printf("{id: %d, login: "%s", password: "%s"}n{ name: "%s", sex: "%s", age: %d}n { height:%f, weight:%f}n", 
                        (*users)[value].id, (*users)[value].login, (*users)[value].password,(*users)[value].name,(*users)[value].sex,
                        (*users)[value].age,(*users)[value].height,(*users)[value].weight);
        break;
        default :
        break;
    }
}
 
/*+*/void include_f(User** users, unsigned size)  
{
char buffer[128];
bool sex;       
        printf("Input user's loginn");
            scanf("%127s", buffer);
                (users*)[size].login = (char*) malloc(strlen(buffer) + 1); 
                strcpy((users*)[size].login, buffer); 
        printf("Input user's passwordn"); 
            scanf("%127s", buffer);
                (users*)[size].password = (char*) malloc(strlen(buffer) + 1); 
                strcpy((users*)[size].password, buffer);  
        printf("Input user's namen");
            scanf("%127s", buffer);
                (users*)[size].name = (char*) malloc(strlen(buffer) + 1);
                strcpy((users*)[size].name, buffer); 
        printf("Input user's sex(0-female or 1-male)n"); 
            scanf("%d",sex); 
switch(sex) 
{ 
    case 0: 
        (users*)[size].sex=(char*) malloc(strlen("female")+1);
        strcpy((users*)[size].sex, buffer); 
        break; 
    case 1: 
        (users*)[size].sex=(char*) malloc(strlen("male")+1);
        strcpy((users*)[size].sex, buffer); 
        break;
    default:
        break; 
}
        printf("Input user's agen"); 
            scanf("%d",(users*)[size].age); 
        printf("Input user's heightn"); 
            scanf("%f",(users*)[size].height); 
        printf("Input user's weightn"); 
            scanf("%f",(users*)[size].weight); 
}
 
/*+*/void delete_f(User** users) 
{
int value; 
    printf("Input user's id"); 
        scanf("%d",value); 
    free((*users)[value].login);
    free((*users)[value].password);
    free((*users)[value].name);
    free((*users)[value].sex);
users[value] = NULL;
}
 
void search_f(User** users) 
{
 
}
 
void sort_f(User** users) 
{
int value;
    printf("set the sort task:");
    printf("1 - age n");
    printf("2 - height n");
    printf("3 - weight n");
    printf("4 - sex (male->female) n");
    printf("5 - ABC(A->Z) n");
        scanf("%d",value);
    switch(value)
    {
        case 1:
            break;
        case 2:
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
        default :
            printf("input right valuen");
            break;  
    }
}
 
/*+*/void edit_f(User** users) 
{
int value;
bool sex;
char buffer[128]; 
    printf ("Input user's id"); 
        scanf ("%d",value); 
        printf ("Input user's loginn");
            scanf("%127s", buffer);
            (users*)[value].login = (char*) malloc(strlen(buffer) + 1); 
            strcpy((users*)[value].login, buffer); 
        printf("Input user's passwordn"); 
            scanf("%127s", buffer);
            (users*)[value].password = (char*) malloc(strlen(buffer) + 1);  
            strcpy((users*)[value].password, buffer); 
        printf("Input user's namen");
            scanf("%127s", buffer);
            (users*)[value].name = (char*) malloc(strlen(buffer) + 1);
            strcpy((users*)[value].name, buffer); 
        printf("Input user's sex(0-female or 1-male)n"); 
            scanf("%d",sex); 
switch(sex) 
{ 
    case 0:  
        (users*)[value].sex=(char*) malloc(strlen("female")+1);
        strcpy((users*)[value].sex, "female");  
        break; 
    case 1: 
        (users*)[value].sex=(char*) malloc(strlen("male")+1);
        strcpy((users*)[value].sex, "male"); 
        break;
    default:
        break; 
}
        printf("Input user's agen"); 
            scanf("%d",(users*)[value].age); 
        printf("Input user's heightn"); 
            scanf("%f",(users*)[value].height); 
        printf("Input user's weightn"); 
            scanf("%f",(users*)[value].weight); 
}
 
/*+*/void input_f(User** users,unsigned size) 
{ 
unsigned i;
char buffer[128]; 
bool sex;    
    for(i=0;i<size;i++) 
    { 
        (*users)->id=i; 
        printf("Input user's #%dnlogin",i);
            scanf("%127s", buffer);
                (*users)[i].login = (char*) malloc(strlen(buffer) + 1);
                strcpy((*users)[i].login, buffer); 
        printf("Input user's passwordn"); 
            scanf("%127s", buffer); 
                (*users)[i].password = (char*) malloc(strlen(buffer) + 1);  
                strcpy((*users)[i].password, buffer);
        printf("Input user's nnamen");
            scanf("%127s", buffer);
                (*users)[i].name = (char*) malloc(strlen(buffer) + 1);
                strcpy((*users)[i].name, buffer);
        printf("Input user's sex(0-female or 1-male)n"); 
            scanf("%d",sex); 
switch(sex) 
{ 
    case 0: 
        (*users)[i].sex=(char*) malloc(strlen("female")+1);
        strcpy((*users)[i].sex, "female");
        break; 
    case 1: 
        (*users)[i].sex=(char*) malloc(strlen("male")+1);
        strcpy((*users)[i].sex, "male");
        break;
    default:
        break; 
}
        printf("Input user's agen"); 
            scanf("%d",(*users)[i].age); 
        printf("Input user's heightn"); 
            scanf("%f",(*users)[i].height); 
        printf("Input user's weightn"); 
            scanf("%f",(*users)[i].weight); 
    }  
}
 
int main () 
{
User *users = NULL;
unsigned size,value; 
 
bool program=true; 
    printf("Input number of usersn"); 
        scanf("%d",&size);
size = size <= MAX_SIZE? size: MAX_SIZE;
users = (User*) malloc((size+3) * sizeof(User));     
    /*+*/printf("1 - inputn"); 
    /*+*/printf("2 - outputn"); 
    /*+*/printf("3 - include (from the end )n"); 
    /*+*/printf("4 - deleten"); 
    printf("5 - searchn"); 
    printf("6 - sortn");
    /*+*/printf("7 - editn"); 
    /*+*/printf("8 - exitn");  
    while (program) 
    {
        printf("select an action : n");
            scanf("%d", value);
        switch(value) 
        { 
            case 1: 
                input_f(&users,size);  
                break; 
            case 2: 
                output_f(&users);  
                break; 
            case 3:  
                include_f(&users,size);
                size++;  
                break; 
            case 4: 
                delete_f(&users); 
                break; 
            case 5: 
                search_f(&users); 
                break; 
            case 6: 
                sort_f(&users); 
                break;
            case 7: 
                edit_f(&users); 
                break;   
            case 8: 
                program=false; 
                break;
            default:
                printf("input right valuen");
                break;
 
        }   
    }
clean_memory(&users,size);
return 0; 
}
  1. В общем, в ардуино я полный профан, при компиляции кода выдает такую ошибку:
    Arduino: 1.8.7 (Windows 10), Плата:»Arduino Uno»

    exit status 1
    expected primary-expression before ‘{‘ token
    Не ругайтесь сильно, я тупой)
    Код:

    #define PIN_TRIG 12
    #define PIN_ECHO 11
    int piezoPin = 3;
    long duration, cm;
    void setup() {
      // Инициализируем взаимодействие по последовательному порту
      Serial.begin (9600);
      //Определяем вводы и выводы
      pinMode(PIN_TRIG, OUTPUT);
      pinMode(PIN_ECHO, INPUT);
    }
    void loop() {
      // Сначала генерируем короткий импульс длительностью 2-5 микросекунд.
      digitalWrite(PIN_TRIG, LOW);
      delayMicroseconds(5);
      digitalWrite(PIN_TRIG, HIGH);
      // Выставив высокий уровень сигнала, ждем около 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц.
      delayMicroseconds(10);
      digitalWrite(PIN_TRIG, LOW);
      //  Время задержки акустического сигнала на эхолокаторе.
      duration = pulseIn(PIN_ECHO, HIGH);
      // Теперь осталось преобразовать время в расстояние
      cm = (duration / 2) / 29.1;
      Serial.print(«Расстояние до объекта: «);
      Serial.print(cm);
      Serial.println(» см.»);
      // Задержка между измерениями для корректной работы скеча
      delay(250);
      if
      {
        cm<160
      }
      else
      {
       tone(piezoPin, 2000); // Запустили звучание
      delay(500);
      noTone(); // Остановили звучание
      }

     

    }

  2. В сообщении об ошибке должно быть еще номер строчки и позиция в строке. А то куда смотреть ?
    if — если — если что ? Здесь не дописано !!! Зайдите в справочник Ардуино насчет «if».
    После if должна стоять круглая скобка, а не «с хвостиком».

    Последнее редактирование: 29 янв 2020

  3. ошибка(и) здесь delay(250);
    if
    {
    cm<160
    }
    else
    {
    tone(pie

  4. Вот тупо скопированное сообщение:
    Arduino: 1.8.7 (Windows 10), Плата:»Arduino Uno»

    C:UsersТРРХАЧАDocumentsArduino________________.ino: In function ‘void loop()’:

    ________:30:2: error: expected primary-expression before ‘{‘ token

    ________:30:2: error: expected ‘)’ before ‘{‘ token

    ________:41:1: error: expected primary-expression before ‘}’ token

    exit status 1
    expected primary-expression before ‘{‘ token

    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    «Показать подробный вывод во время компиляции»

  5. if (cm < 160 )
    {
    tone(piezoPin, 2000); // Запустили звучание
      delay(500);
      noTone(); // Остановили звучание
    }
    else
    {
    tone(piezoPin, 200); // Запустили звучание
      delay(500);
      noTone(); // Остановили звучание
    }

    Должно быть в примерно таком виде.

  6. Ставьте нормальную IDE с подсветкой синтаксиса, а не этот блокнот. Тем более на стадии, когда

  7. оххх, а может и с на русском есть? Дашь ссылку?

  8. Все равно ошибка:
    Arduino: 1.8.7 (Windows 10), Плата:»Arduino Uno»

    C:UsersТРРХАЧАDocumentsArduino________________.ino: In function ‘void loop()’:

    ________:33:10: error: too few arguments to function ‘void noTone(uint8_t)’

    In file included from sketch________.ino.cpp:1:0:

    C:UsersТРР ХАЧАAppDataLocalArduino15packagesarduinohardwareavr1.8.2coresarduino/Arduino.h:248:6: note: declared here

    void noTone(uint8_t _pin);

    ^~~~~~

    ________:39:10: error: too few arguments to function ‘void noTone(uint8_t)’

    In file included from sketch________.ino.cpp:1:0:

    C:UsersТРР ХАЧАAppDataLocalArduino15packagesarduinohardwareavr1.8.2coresarduino/Arduino.h:248:6: note: declared here

    void noTone(uint8_t _pin);

    ^~~~~~

    exit status 1
    too few arguments to function ‘void noTone(uint8_t)’

    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    «Показать подробный вывод во время компиляции»

  9. Atmel Studio с сайта микрочипа, а потом оттуда ставишь нахлобучку для ардуины. И там же можешь поставить любую цветовую тему с любой подсветкой. Потом в блокнот уже не вернёшься. Никогда.

  10. А не перевести самостоятельно? Перевод:

    и ниже подсказка:

  11. Проблюешься, и поставишь Notepad ++, Sublime, Atom, etc.

    Навсегда.

  12. noTone(piezoPin);

    Notepad++Portable

  13. Студия требовательна к пк, хоть и решает множество задач. Да и аглицкий там, под тз тс не проходит)

  14. Последнее редактирование: 29 янв 2020

  15. А мне нравится VSCode. Работает на любом навозе. Прикрутить можно к любому дереву. Но мне, увы, мозгов на это не хватает. Поэтому пока прикручен к IAR)У меня Atmel Studio на ноуте запускается минуты за полторы (ОЗУ 8ГБ, но тухлый проц). Но потом нормально работает. А вот CCS и Simplicity Studio — они на эклипсе. Вот это вообще вилы. Даже если и загрузятся, то потом ещё и тупят((( Приходится большого брата звать на помощь

  16. Блокнотом++ пользуюсь в любой момент когда нужно что-то записать.
    Со студией аналогично все. В другое не лезу)

  17. Они просто не в курсе, что так можно! Там же не только подсветка, но и автопоиск, подсказки, рефакторинг и прочее, прочее, без чего в принципе невозможно осваивать новые горизонты!

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

server.cpp: In function ‘int main(int, char**)’:
server.cpp:64:16: error: expected primary-expression before ‘=’ token
server.cpp:71:14: error: expected primary-expression before ‘=’ token
server.cpp:71:24: error: expected primary-expression before ‘)’ token
server.cpp:71:24: error: expected ‘;’ before ‘)’ token
server.cpp:72:12: error: expected primary-expression before ‘=’ token
server.cpp:80:10: error: expected primary-expression before ‘=’ token
make: *** [server] Error 1

и это часть моего кода:

#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <netdb.h>
#include <iostream>
#include <regex.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <string>
#include <stdlib.h>
#include <locale.h>
#include <cstring>
#include <signal.h>
#include <dirent.h>

using namespace std;

/* global variables */
// error codes
#define ERR_OK = 0;
#define ERR_PARAMS = 1;
#define ERR_SOCKET = 2;
#define ERR_BIND = 3;
#define ERR_OTHER = 99;

// others
#define LISTEN_BACKLOG 50

/* function prototypes */
void printErr(int EC);
int second(int port);

int main(int argc, char **argv)
{
int pflag = 0;
string pvalue;
int port;
int c;

opterr = 0;
while((c = getopt (argc, argv, "p:")) != -1) {
switch(c) {
case 'p':
pflag = 1;
pvalue.assign(optarg);
break;
case '?':
if(optopt == 'c')
fprintf(stderr, "Option -%c requires an argument.n", optopt);
else if(isprint (optopt))
fprintf(stderr, "Unknown option `-%c'.n", optopt);
else
fprintf(stderr, "Unknown option character `\x%x'.n", optopt);
return ERR_PARAMS;
default:
abort();
}
}

if(pflag == 0) {
printErr(ERR_PARAMS);
return ERR_PARAMS;
}
printf ("pvalue = %sn", pvalue.c_str());

port = atoi(pvalue.c_str());

second(port);

return ERR_OK;
}

У меня есть много подобных ошибок во всем коде, поэтому я думаю, что есть что-то вроде пропуска столбца или чего-то другого. Вы видите это? Я не.

-1

Решение

#define ERR_OK = 0;
#define ERR_PARAMS = 1;
#define ERR_SOCKET = 2;
#define ERR_BIND = 3;
#define ERR_OTHER = 99;

должно быть

#define ERR_OK 0
#define ERR_PARAMS 1
#define ERR_SOCKET 2
#define ERR_BIND 3
#define ERR_OTHER 99

Макрос не является переменной. Это не имеет значения. Это функция предварительной обработки.

Причина, по которой у вас везде появляются синтаксические ошибки, заключается в том, что ERR_OK и тому подобное были заменены = 0; скорее, чем 0 например.

4

Другие решения

Другие ответы верны, что проблема заключается в символических константах

#define ERR_OK = 0;
#define ERR_PARAMS = 1;
#define ERR_SOCKET = 2;
#define ERR_BIND = 3;
#define ERR_OTHER = 99;

Тем не менее, в C ++ есть лучший способ исправить это:

const int ERR_OK = 0;
const int ERR_PARAMS = 1;
const int ERR_SOCKET = 2;
const int ERR_BIND = 3;
const int ERR_OTHER = 99;

Или C и C ++ оба позволяют

enum ERROR_CODES {
ERR_OK,
ERR_PARAMS,
ERR_SOCKET,
ERR_BIND,
ERR_OTHER = 99
};

5

Ваш #defines неверны, они должны выглядеть следующим образом, например:

#define ERR_PARAMS 1

То есть они не должны иметь = и не заканчивается точкой с запятой. #define это директива препроцессора. Они не подчиняются тем же правилам синтаксиса, что и остальная часть C ++. В частности, директива препроцессора завершается новой строкой, а не точкой с запятой.

#define ERR_PARAMS = 1;

Это на самом деле определяет ERR_PARAMS быть = 1;, Если потом заменить ERR_PARAMS с = 1; в своем коде вы увидите, почему всплывают некоторые ошибки. Например, рассмотрим эту строку:

printErr(ERR_PARAMS);

Если вы замените ERR_PARAMS здесь вы получите:

printErr(= 1;);

Ну, это, конечно, не правильно!

4

#define ERR_OK = 0;
#define ERR_PARAMS = 1;
#define ERR_SOCKET = 2;
#define ERR_BIND = 3;
#define ERR_OTHER = 99;

должно быть

#define ERR_OK 0
#define ERR_PARAMS 1
#define ERR_SOCKET 2
#define ERR_BIND 3
#define ERR_OTHER 99

1

Понравилась статья? Поделить с друзьями:
  • Error expected asm or attribute before token
  • Error expected primary expression before long
  • Error expected after class definition
  • Error expected primary expression before int
  • Error expected primary expression before float