You will need more than one char to store a line. Use e.g. an array of chars, like so:
#define MAX_LINE 256
char line[MAX_LINE];
int c, line_length = 0;
//loop until getchar() returns eof
//check that we don't exceed the line array , - 1 to make room
//for the nul terminator
while ((c = getchar()) != EOF && line_length < MAX_LINE - 1) {
line[line_length] = c;
line_length++;
//the above 2 lines could be combined more idiomatically as:
// line[line_length++] = c;
}
//terminate the array, so it can be used as a string
line[line_length] = 0;
printf("%s
",line);
return 0;
With this, you can't read lines longer than a fixed size (255 in this case). K&R will teach you dynamically allocated memory later on that you could use to read arbitarly long lines.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…