gpt4 book ai didi

c - Error_handler……什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:45 27 4
gpt4 key购买 nike

我正在尝试学习一些 C,并选择使用“SAMS 在 21 天内自学 C”这本书。 ( 顺便说一句,有什么好的 C 书吗?这是我的第三本书!我总是以错误或损坏的代码结束,这些代码应该可以工作,但在我的学习过程中却碰壁了!:-( )遗憾的是,我已经运行了我应该输入并运行的代码。打字很顺利,但运行……好吧,不太好!编译器给我关于这一行的错误:

{
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; }

}

最佳答案

试试这本书:

C 编程语言(第 2 版),作者 Brian W. Kernighan、Dennis M. Ritchie。

您交换了 argv 和 argc。

if (argv 1)

应该是:

if (argc == 1)

您可以简单地删除 error_handler block ,因为它似乎没有任何用处,也没有在代码中声明。这本书可能试图告诉您的是 fprintf 到 stderror?

关于c - Error_handler……什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com