C 当使用printf作为字符数组时,我得到了一个额外的和不同的字符
当我运行这个程序并将laks作为输入时,我得到laks作为输出加上一个额外字符。另外,如果我想在输入新行时中断程序,即当我按enter键时,我希望循环停止,但while语句似乎不起作用 包括 包括 包括 真空总管 { clrsc; 人物[5]; int i; 打印程序人员名称\n;C 当使用printf作为字符数组时,我得到了一个额外的和不同的字符,c,C,当我运行这个程序并将laks作为输入时,我得到laks作为输出加上一个额外字符。另外,如果我想在输入新行时中断程序,即当我按enter键时,我希望循环停止,但while语句似乎不起作用 包括 包括 包括 真空总管 { clrsc; 人物[5]; int i; 打印程序人员名称\n; 对于i=0;i终止字符串时不能为空 我也是 person[i] = '\0'; 在for循环之后 我会的 char person[6] = ""; 然后执行扫描将阵列的大小增加1,然后nul终止它: char p
对于i=0;i终止字符串时不能为空 我也是
person[i] = '\0';
在for循环之后
我会的
char person[6] = "";
然后执行扫描将阵列的大小增加1,然后nul终止它:
char person[6];
for(i=0;i<5;i++)
{
scanf("%c",&person[i]);
}
person[i] = '\0'; // or person[i] = 0;
还要注意的是,conio.h是非标准的,标准要求main方法返回一个int。请注意,换行符是“\n”而不是“/n”。因为这是在注释中,所以这不是您当前问题的一部分。如果scanf%4s,person!=1返回1;来代替循环,您为什么不使用它?是的,我只是在发布后才注意到。@GOP如果我想使用程序中所示的while语句中断循环,我将在同一个程序中输入。即,按enter键后,系统将停止运行。我的意思是,如果我键入ab并按enter键,光标不会移动
char person[6] = { 0 };
for(i=0;i<5;i++)
{
scanf("%c",&person[i]);
}