字符串2D数组

时间:2017-11-07 19:28:22

标签: c arrays

一段代码,用于声明一个最多包含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

1 个答案:

答案 0 :(得分:0)

如上所述,无论如何,您的代码都会尝试读取10个名称。

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

请参阅scanf的手册页并查找EOF。

您可能还希望在结尾处使用换行符打印每个名称。