Hello, I am just going over tutorial on line and working on this character handling program from on line tutorial.
First of all, I just copy the program but it doesn't compile.
It complains that (int)cp-in_line is illegal
cha_handle.c:21: error: invalid operands to binary - (have âintâ and âchar *â)
Also, I don't understand why in_line(begining of array) need to be subtracted from current position in array(denoted by cp)...
Any help would be appreciated.
thank you.
Code:#include <stdio.h> #include <stdlib.h> #include <string.h> #define LINELNG 100 /* max length of input line */ main() { char in_line[LINELNG]; char *cp; int c; cp = in_line; while ( ( c=getc(stdin) ) != EOF ) { if ( cp == &in_line[LINELNG-1] || c == '\n' ) { *cp = 0; if ( strcmp( in_line, "stop" ) == 0 ) exit( EXIT_SUCCESS ); else /* printf("line was %d characters long\n", (int)cp-in_line); */ printf("line was %d characters long\n", (int)cp-in_line); cp = in_line; } else *cp++ = c; } exit(EXIT_SUCCESS); }