C++语言程序设计

2． 从键盘上读一个输入行并输出
在scanf中使用%s或利用cin可以读入一个字符串，当遇到空格符时就认为字符串结束了，因此不能用它们来读入一个输入行，因为一行中可能有空格。我们的程序要逐个检查输入的字符，只有遇到换行符'\n'时才停止读入，程序如下：

| 例6-12

#define MAXLEN 80
#include <stdio.h>
void main(void)
{
char line[MAXLEN + 1],c;
int i;
i = 0;
while((c = getchar()) != '\n')
line[i ++] = c;
line[i] = '\0';
printf("%s\n",line);
}

运行该程序，输入"How are you"，则屏幕打印：
How are you
这个程序用getchar逐个读入字符，当不是换行符时，就把读入的字符送到字符数组line中。i++使字符数组每得到一个字符后，就将下标后移一位，准备存放下一个字符，当遇到'\n'时，不把'\n'送进数组line，而是在最后加一个字符串结束标志'\0'，构成一个字符串。printf使用'%s'格式输出，它们执行是这样的：按字符数组名line找到该数组的起始地址，然后逐个输出数组中的字符，直至遇到'\n'为止。