Я пытаюсь изучить некоторые C и решил использовать книгу «SAMS Научите себя C через 21 день». ( Кстати, есть ли какая-нибудь хорошая книга на C? Это мой третий! У меня всегда заканчивается плохой или сломанный код, который должен работать и ударить по стене в моем процессе обучения, когда он этого не делает! :-() . к сожалению, я бежал на код под что я просто должен напечатать и запустить типирование шло хорошо, но работает ... ну, не так хорошо компилятор дает мне ошибку об этой линии:Error_handler ... что?
{
printf ("Printer busy or disconnected\n"); error_handler; }
, когда я пытаюсь запустить этот код И так как я очень новичок, когда речь идет о кодировании C, я понятия не имею, вообще, что делать, когда редактор возвращает сообщение об ошибке, как это:.
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .clean-conf
rm -f -r build/Debug
rm -f dist/Debug/GNU-MacOSX/type_and_run
CLEAN SUCCESSFUL (total time: 158ms)
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/type_and_run
mkdir -p build/Debug/GNU-MacOSX
rm -f build/Debug/GNU-MacOSX/Type and run 1.o.d
gcc -c -g -MMD -MP -MF build/Debug/GNU-MacOSX/Type and run 1.o.d -o build/Debug
/GNU-MacOSX/Type\ and\ run\ 1.o Type\ and\ run\ 1.c
i686-apple-darwin10-gcc-4.2.1: and: No such file or directory
i686-apple-darwin10-gcc-4.2.1: run: No such file or directory
i686-apple-darwin10-gcc-4.2.1: 1.o.d: No such file or directory
Type and run 1.c: In function 'do_heading':
Type and run 1.c:54: error: 'error_handler' undeclared (first use in this function)
Type and run 1.c:54: error: (Each undeclared identifier is reported only once
Type and run 1.c:54: error: for each function it appears in.)
make[2]: *** [build/Debug/GNU-MacOSX/Type and run 1.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 158ms)
Все, что я могу понять, это то, что «error_handler» не объявлен и что он, похоже, не является библиотечной функцией. ВЗДОХ!
Так сказал короткий, есть ли что-нибудь, что я могу сделать, чтобы изменить код, чтобы он работал по назначению, и я могу двигаться дальше?
Или я должен просто бросить книгу в кучу бесполезных книг о C?
Вот код по всей его длине:
void do_heading(char *filename);
int line = 0, page = 0;
int main(int argv, char *argc[])
{
char buffer[256];
FILE *fp;
if (argv < 2)
{
fprintf(stderr, "\nProper Usage is: ");
fprintf(stderr, "\n\nprint_it filename.ext\n");
return (1);
}
if ((fp = fopen(argc[1], "r")) == NULL)
{
fprintf(stderr, "Error opening file, %s!", argc[1]);
return (1);
}
page = 0;
line = 1;
do_heading(argc[1]);
while(fgets(buffer, 256, fp) != NULL)
{
if(line % 55 == 0)
do_heading(argc[1]);
fprintf(stdout , "%4d:\t%s", line++, buffer);
}
fprintf(stdout , "\f");
fclose(fp);
return 0;
}
void do_heading(char *filename)
{
page++;
if (page > 1)
fprintf(stdout , "\f");
fprintf(stdout, "Page: %d, %s\n\n", page, filename);
if ((stdout = fopen("PRT:","w")) == NULL) {
printf ("Printer busy or disconnected\n"); error_handler; }
}
"int argv" и "char * argc []" ... действительно? !!! –
Это то, что говорит книга! : -S –
Но, тем не менее, остальная часть кода в порядке, за исключением этой строки: { printf («Принтер занят или отключен \ n"); error_handler; } –