一段代码,用于声明一个最多包含16个值和10个名称的字符数组,一个将字符数组作为字符串读入的语句,然后使用%s格式字符将它们打印为字符串。从键盘输入名称。
int i;
char name[10][16];
for(i=0; i<10; i++){
scanf("%s", name[i]);
}
for(i=0; i<10; i++){
printf("%s", name[i]);
}
按键盘输入名称后,ctrl + d不会显示任何内容。
退出:
莱纳斯
辰溪
扬子
CTRL + d
答案 0 :(得分:0)
如上所述,无论如何,您的代码都会尝试读取10个名称。
要在文件结尾处退出(例如,在某些操作系统中输入control-D ENTER),您需要检查读取数据的循环中的文件结尾。在这种情况下,您还需要记住您已阅读过多少个值,并且只打印该数字。 (如果你没有,它似乎工作,但只是因为数组初始化为零。如果你以后再次使用相同的数组,你可能会得到乱码的结果。)
请参阅scanf的手册页并查找EOF。
您可能还希望在结尾处使用换行符打印每个名称。