如何在C中打印特殊字符'>‘?它会打印一个指向左侧的箭头,而我用scanf添加的字符确实会以正确的方式打印。
int main (int argc, char **argv){
 int i;
 char line[2];
 line[1]=">";
 scanf("%c",&line[2]);
 for(i=1;i<=2;i++)
 printf("%c",&line[i]);
}发布于 2014-12-10 21:33:15
printf,而不是字符。'引入字符文字。您使用了引入C字符串文字的"。你的代码应该是
line[0] = '>';
scanf("%c", &line[1]);
for (i = 0; i < 2; i++)
    printf("%c", line[i]);我的最后一条建议是,让您的编译器发出警告,然后注意它们。
发布于 2014-12-10 21:33:37
你的错误:
scanf("%c",&line[2]); -->越界访问off-by-one。您正在尝试访问3rd元素,但该元素并不存在。请始终记住,element.printf("%c",&line[i]);中的数组索引是从0开始的,也就是说,索引n+1表示的是完全错误的循环,也许你与scanf()循环初始化和条件检查搞混了。解决方案
change line[1]=">"; to line[0]='>';
scanf("%c",&line[2]); to scanf(" %c",&line[1]); 
for(i=1;i<=2;i++) to for(i=0;i< 2;i++)
for(i=1;i<=2;i++) to for(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
line[1]=">";toscanf(" %c",&line[1]);
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)toscanf(" %c",&line[1]);
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
for(i=1;i<=2;i++)tofor(i=0;i< 2;i++)
注意:最好的做法是在main()中添加return值。
https://stackoverflow.com/questions/27402286
复制相似问题