954,157 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Help with UNIX more c code

Ok, for a lab I have to write the UNIX more filter in C, but I have got everything done execpt one thing. I only hvae it to where it can read 20 lines at a time. But what I want to do is if argv[1] == -Pxx where xx is the amount of lines you want to display at a time. but I need to use a scanf() and a atoi command I think but I have not idea on how to do that. Here is my code and where it sets the amount of line sto be printed is in bold.

#include
#include
#include

main(int argc, char *argv[])

{
int line_no = 0;
int i=1;
FILE *fp;
char ch;
int linec;
char line[256];

while ( i < argc )
{
if ( (fp = fopen(argv[i],"r")) != NULL )
{
printf("\n%s\n",argv[i]);
while(!feof(fp) )
{
line_no = (++line_no) % 20;
if ( line_no == 0 )
{
printf("---Press enter for more lines---");
if ( (ch = getchar()) == 'q')
exit(0);
}

if ( fgets(line, 255, fp) != NULL ) /* not eof on line */
printf("%s", line);
}
fclose(fp);
}

++i;
}
}

jifiii
Light Poster
45 posts since Nov 2004
Reputation Points: 10
Solved Threads: 1
 

read the parameter, strip away the -P, and use atoi on the rest of the string to convert it into an integer number.

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

could you right a peice of code for me that would do that for me please.

jifiii
Light Poster
45 posts since Nov 2004
Reputation Points: 10
Solved Threads: 1
 
could you right a peice of code for me that would do that for me please.


He could, (heck I probably could), but how would you learn anything? Just take his instructions, and implement them the best way that you can think of. Then post that, and see what, if anything, we can suggest.

alc6379
Cookie... That's it
Team Colleague
2,820 posts since Dec 2003
Reputation Points: 186
Solved Threads: 147
 

Ok, can you answer me this question how do you strip away the -P part.

jifiii
Light Poster
45 posts since Nov 2004
Reputation Points: 10
Solved Threads: 1
 

there's a function to take a substring of a longer string. Find out what it is and how you use it.
Any manual, helpfile or other reference will tell you what to do.

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

Where would I find that at, because I have the program form working except from inputing how many lines you want to display at a time.

jifiii
Light Poster
45 posts since Nov 2004
Reputation Points: 10
Solved Threads: 1
 

what did I say? Did you even bother to read past the first few words or are you too lazy even for that?

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

if you work on unix/linux, check the man page for getopt() function. It helps very much. At first it seems like an overhead, but in fact is very usefull.

nvanevski
Newbie Poster
12 posts since Dec 2004
Reputation Points: 10
Solved Threads: 1
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You