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

Узнай цену своей работы

Формулировка задачи:

Помогите найти ошибку.
#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

Решение задачи: «Исправить ошибку компиляции: [Build error] Error1»

textual
Листинг программы
#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);
}

Объяснение кода листинга программы

  1. В функции report_error выводится сообщение об ошибке, а затем вызов exit завершает программу. Это может быть изменено таким образом, чтобы программа продолжала работу после генерации ошибки.
  2. Если входной файл пуст, то программа также завершается после вывода всех сообщений об ошибках.
  3. В функции main используется функция sscanf для чтения входных данных. Если она не работает правильно, программа может выдать неправильные сообщения об ошибках.
  4. Если во входном файле есть несколько строк, которые нужно изменить, то программа будет менять их все. Если нужно изменить только одну строку, то нужно будет изменить код программы, чтобы он корректно обрабатывал эту ситуацию.
  5. Если во входном файле есть строки, которые начинаются с символа, указанного в аргументе argv[1], то они будут изменены. Если этот символ не встречается во входном файле, то программа будет работать быстрее.
  6. Если выходной файл пуст, то программа будет завершена после вывода всех сообщений об ошибках.
  7. Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  8. Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  9. Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  10. Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  11. Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  12. Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  13. Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  14. Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  15. Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  16. Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  17. Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  18. Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  19. Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
  20. Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы