Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 当使用printf作为字符数组时,我得到了一个额外的和不同的字符_C - Fatal编程技术网

C 当使用printf作为字符数组时,我得到了一个额外的和不同的字符

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

当我运行这个程序并将laks作为输入时,我得到laks作为输出加上一个额外字符。另外,如果我想在输入新行时中断程序,即当我按enter键时,我希望循环停止,但while语句似乎不起作用

包括 包括 包括 真空总管 { clrsc; 人物[5]; int i; 打印程序人员名称\n;
对于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]);    
}