2 rpcod8 rpcod8 于 2016.04.28 11:05 提问

请问错误在哪里不胜感激 c小白

#include
#include
int main(void)
{
char name[20];
int width;
printf("please write your name:\n");
scanf("%s",name);
printf("name:/"%s/".\n",name);
printf("name:/"%20s/".\n",name);
printf("name:/"%-20s/".\n",name);
width=strlen(name);
printf("name:/"%*s/".\n",width+3,name);
return 0;
}

3个回答

qq_28139523
qq_28139523   2016.04.28 12:14

width + 3的输出应该前面有一个 %d 吧?

niaonao
niaonao   Rxr 2016.04.28 12:33

printf("%*s", 10, s);
/*意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s", s);*/
不缺 %d
你的错误是什么?代码没什么错
是不是你的 输入的 name 长度超过 20 字节了
你把错误的日志贴出了看看

qq423399099
qq423399099   Ds   Rxr 2016.04.28 13:39

正斜杠和反斜杠错了吧
楼主代码里对双引号用的是正斜杠,要转义输出应该是用反斜杠

 #include<stdio.h>
#include<string.h>
int main(void)
{
    char name[20];
    int width;
    printf("please write your name:\n");
    scanf("%s",name);
    printf("name:\"%s\".\n",name);
    printf("name:\"%20s\".\n",name);
    printf("name:\"%-20s\".\n",name);
    width=strlen(name);
    printf("name:\"%*s\".\n",width+3,name);
    return 0;
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!