Исправить ошибку компиляции: [Build error] Error1 - C (СИ)
Формулировка задачи:
Помогите найти ошибку.
Выдаёт [Build error] Error1
#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»
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); }
Объяснение кода листинга программы
- В функции
report_error
выводится сообщение об ошибке, а затем вызовexit
завершает программу. Это может быть изменено таким образом, чтобы программа продолжала работу после генерации ошибки. - Если входной файл пуст, то программа также завершается после вывода всех сообщений об ошибках.
- В функции
main
используется функцияsscanf
для чтения входных данных. Если она не работает правильно, программа может выдать неправильные сообщения об ошибках. - Если во входном файле есть несколько строк, которые нужно изменить, то программа будет менять их все. Если нужно изменить только одну строку, то нужно будет изменить код программы, чтобы он корректно обрабатывал эту ситуацию.
- Если во входном файле есть строки, которые начинаются с символа, указанного в аргументе
argv[1]
, то они будут изменены. Если этот символ не встречается во входном файле, то программа будет работать быстрее. - Если выходной файл пуст, то программа будет завершена после вывода всех сообщений об ошибках.
- Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если выходной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
- Если входной файл не может быть открыт, то программа выдаст сообщение об ошибке и завершится.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д