Friday, November 2, 2018

c - How to send EOF via Windows terminal



I'm trying to comprehend Example 1.9 from the K&R book, but I don't get how to send EOF. Some sources mentioned Ctr+Z, but that simply terminates the program. I somehow managed to send EOF with a combination of Enter and Ctrl+Z and maybe Ctrl+V, but I can't reproduce it.



#include 
#define MAXLINE 1000

main()
{
int len;
int max;
char line[MAXLINE];
char save[MAXLINE];

max = 0;
while((len = getline_my(line, MAXLINE)) > 0)
if(len > max) {
max = len;
copy(line, save);
}
if(max > 0)
printf("%s", save);
}

getline_my(s, lim)
char s[];
int lim;
{
int c, i;

for(i=0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; i++)// As long as the condition is fulfilled
s[i] = c;
if (c == '\n') {
s[i] = c;
i++;
}
s[i] = '\0';
return(i);
}

copy(s1, s2)
char s1[];
char s2[];
{
int i;

i = 0;
while((s2[i] = s1[i]) != '\0')
i++;

}

Answer



You can simulate EOF with CTRL+D (for *nix) or CTRL+Z (for Windows) from command line.


No comments:

Post a Comment

plot explanation - Why did Peaches&#39; mom hang on the tree? - Movies &amp; TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...