Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Zlobx
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 4
1

Исправить ошибку компиляции: [Build error] Error1

04.05.2012, 20:57. Просмотров 1834. Ответов 4
Метки нет (Все метки)

Помогите найти ошибку.

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
int i,m,n;
char a[100],b[100];
char name1[BUFSIZ], name2[BUFSIZ];
char x;
FILE *f, *f1;
//------------------------------------------------------------------
// Îñíîâíàÿ ïðîãðàììà ----------------------------------------------
void main()
 
{
 
  printf("This program delete each n-th repeating if input sybol \n");
  while(f == NULL)
   {
    printf("Enter file name ");
    scanf("%s", name1);
    f = fopen(name1, "r");
    if (f == NULL)     
      printf("Oshibka otkririya\n");
   }
  printf("Enter symbol");
  scanf("%c", x);
  printf("Enter n");
  scanf("%d", n);
  
//------------------------------------------------------------------
// Âûâîä ñîäåðæèìîãî òåêñòîâîãî ôàéëà íà ýêðàí
  printf("\n Soderjimoe faila:\n\n");
  while(!feof(f))
    {
     fgets(a,100,f);
     printf("%s",a);
    }
  fseek(f,0,SEEK_SET);
//------------------------------------------------------------------
// Ïîèñê çàäàííîãî ñèìâîëà è óäàëåíèå
     m=0
     while (!feof(f))
        {
           fgets(a,100,f);
           for (i=0; i<strlen(a); i++)
             { 
               if (a[i]=x) 
                  m++; 
               if (a[i]!=x)  
                  b=b+a[i];
               if (m=n) 
                  m=0;
        }       
//------------------------------------------------------------------
// Âûâîä ðåçóëüòàòà íà ýêðàí
  printf("\n\n Rezult:");
  for (i=0; i<strlen(b); i++)
     printf("%c",b[i]);
  printf("\n V nem bukv: %d",jmax+1); 
  fclose(f);
//------------------------------------------------------------------
// Âûâîä ðåçóëüòàòà â ôàéë
  printf("\n\n Enter filename of rezult file \n");
  scanf("%s", name2);
  f1=fopen(name2,"a");
  for (i=0; i<strlen(b); i++)
     fprintf(f1,"%c",b[i]);
  fclose(f1);
  printf("Rezultat sohranen.");
  getch();
}
Выдаёт [Build error] Error1
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2012, 20:57
Ответы с готовыми решениями:

Build error - dev c++
Build error - dev c++. Добавлено через 3 часа 18 минут Во время попытки компиляции.

Исправить ошибку: error C4700: использована неинициализированная локальная переменная "n"
перевожу с С++ на Си такой код: Код С++: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Исправить ошибку компиляции "error C4430: отсутствует спецификатор типа - предполагается int"
Добрый день. Я получил задание написать программку на c++. КНИГА: • фамилия и инициалы автора ;...

Исправить ошибку компиляции "error C4430: отсутствует спецификатор типа - предполагается int"
// training.cpp: определяет точку входа для консольного приложения. // #include &lt;stdio.h&gt;...

Исправить ошибку в WxDev-C++: Error with debugging process: GDB Error: error, No source file named main.cpp
Здравствуйте товарищи! Новенький я в си, установил wxDev-C++, скомпилировал, запускаешь -...

4
mikhail_g
189 / 144 / 27
Регистрация: 02.05.2011
Сообщений: 467
05.05.2012, 12:29 2
В какой программе компилируете? В VS 2008 компилируется нормально, только у вас куча ошибок синтаксических

Добавлено через 15 минут
Возможно не хватает #include <stdafx.h>, но тогда ошибка была вы вроде "fatal error"
0
Nameless One
Эксперт С++
5802 / 3452 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
05.05.2012, 15:04 3
Цитата Сообщение от mikhail_g Посмотреть сообщение
В VS 2008 компилируется нормально, только у вас куча ошибок синтаксических
это вообще-то взаимоисключающие события

Zlobx, компилятор какой? Подробнее о ошибке ничего сказать нельзя?

Как минимум, из того, что заметил — в условном выражении if используется присваивание вместо сравнения
0
mikhail_g
189 / 144 / 27
Регистрация: 02.05.2011
Сообщений: 467
05.05.2012, 15:25 4
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
using namespace System;
 
int i,m,n;
char a[100],b[100];
char name1[BUFSIZ], name2[BUFSIZ];
char x;
FILE *f, *f1;
//------------------------------------------------------------------
// Основная программа ----------------------------------------------
void main()
{
 
    printf("This program delete each n-th repeating if input sybol \n");
    while(f == NULL)
    {
        printf("Enter file name ");
        scanf("%s", name1);
        f = fopen(name1, "r");
        if (f == NULL)     
            printf("Oshibka otkririya\n");
    }
    printf("Enter symbol");
    scanf("%c", x);
    printf("Enter n");
    scanf("%d", n);
 
    //------------------------------------------------------------------
    // Вывод содержимого текстового файла на экран
    printf("\n Soderjimoe faila:\n\n");
    while(!feof(f))
    {
        fgets(a,100,f);
        printf("%s",a);
    }
    fseek(f,0,SEEK_SET);
    //------------------------------------------------------------------
    // Поиск заданного символа и удаление
    m=0;
        while (!feof(f))
        {
            fgets(a,100,f);
            for (i=0; i<strlen(a); i++)
            { 
                if (a[i]=x) 
                    m++; 
                if (a[i]!=x)  
                    //b=b+a[i];
                if (m=n) 
                    m=0;
            }       
            //------------------------------------------------------------------
            // Вывод результата на экран
            printf("\n\n Rezult:");
            for (i=0; i<strlen(b); i++)
                printf("%c",b[i]);
            //printf("\n V nem bukv: %d",jmax+1); 
            fclose(f);
            //------------------------------------------------------------------
            // Вывод результата в файл
            printf("\n\n Enter filename of rezult file \n");
            scanf("%s", name2);
            f1=fopen(name2,"a");
            for (i=0; i<strlen(b); i++)
                fprintf(f1,"%c",b[i]);
            fclose(f1);
            printf("Rezultat sohranen.");
            getch();
        }
}
Две ошибки заккоментировалЮ, потому что не понимаю что имеется ввиду:
1) //b=b+a[i]; - пытаетесь присвоить типу указатель значение другого типа: rror C2440: =: невозможно преобразовать 'char *' в 'char [100]'
2) //printf("\n V nem bukv: %d",jmax+1); - не объявлена переменная jmax
0
Nameless One
Эксперт С++
5802 / 3452 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
05.05.2012, 16:07 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

mikhail_g, в С нет пространств имен.

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
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
 
 
void report_error(int code, const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
 
    if(errno)
        fprintf(stderr, "%s: ", strerror(errno));
    
    vfprintf(stderr, fmt, ap);
    
    va_end(ap);
 
    fputc('\n', stderr);
    
    if(code)
        exit(code);
}
 
int main(int argc, char* argv[])
{
    FILE *in, *out;
    char to_delete, junk;
    size_t num;
    char buf[BUFSIZ], *pch;
    size_t nocc = 1;
    
    if(argc != 5)
        report_error(1, "Usage: %s CHAR NUM IN_FILE OUT_FILE", argv[0]);
 
    if(strlen(argv[1]) != 1)
        report_error(1, "Expected single char; given `%s'", argv[1]);
    else
        to_delete = *argv[1];
        
    if(sscanf(argv[2], "%zd %c", &num, &junk) != 1 || num == 0)
        report_error(1, "Expected positive integer; given `%s'", argv[2]);
    
    if((in = fopen(argv[3], "r")) == NULL)
        report_error(1, argv[3]);
    
    if((out = fopen(argv[4], "w")) == NULL)
        report_error(1, argv[4]);
    
    while(fgets(buf, BUFSIZ, in) != NULL)
    {
        for(pch = buf, pch = strchr(pch, to_delete); pch != NULL;
            pch = strchr(pch, to_delete), ++nocc)
        {
            if(nocc == num)
            {
                size_t len = strlen(pch) - 1;
                
                memmove(pch, pch + 1, len);
                pch[len] = '\0';
                nocc = 0;
            }
            else
                ++pch;
        }
                
        if(fputs(buf, out) == EOF)
            report_error(1, "Error writing to %s", argv[4]);
    }
    
    if(ferror(in))
        report_error(1, "Error reading from %s", argv[3]);
    
    exit(0);
}
Код
~/samples/c $ cat in.txt # содержимое in.txt
ANSI C refers to the family of successive standards published by the American National Standards Institute (ANSI) for the C programming language. Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.
~/samples/c $ ./sample e 3 in.txt out.txt # удаляет каждую третью 'e' в тексте
~/samples/c $ cat out.txt # содержимое получившегося файла
ANSI C refers to th family of successive standards publishd by the American National Standards Institut (ANSI) for the C programming language. Softwar developrs writing in C are encouragd to conform to the standards, as doing so aids portability betwen compilers.
~/samples/c $
1
05.05.2012, 16:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2012, 16:07

При компиляции выдает ошибку [Fatal Error] Unit4.pas(10): Internal error: SY576
При компиляции выдает ошибку Unit4.pas(10): Internal error: SY576 и выделяет строку ...

Ошибка при компиляции In function"int main()"; expected ';', before "cin", [Build Error] [main.o] Error 1
Книга &quot;Основы программирования на C++ том 1&quot;(Стэнли Б.Липпман). Приводится пример кода. #include...

Исправить ошибку Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
Ошибка:Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.