c - 字符串 2D 数组



一段代码,用于声明最多包含 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不会显示任何内容。

例如输入:

莱纳斯

晨曦

扬子

按 +D

正如所写,你的代码无论如何都会尝试读取 10 个名字。

要在文件末尾退出(例如,在某些操作系统中输入 control-D ENTER),您需要在读取数据的循环中检查文件结尾。 在这种情况下,您还需要记住已读取的值数,并且仅打印该数字。 (如果你不这样做,它似乎可以工作,但只是因为数组初始化为零。 如果以后再次使用相同的数组,可能会得到乱码结果。

请参阅扫描手册页并查找 EOF。

您可能还希望在打印每个名称末尾带有换行符。