#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;
}
width + 3的输出应该前面有一个 %d 吧?
printf("%*s", 10, s);
/*意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s", s);*/
不缺 %d
你的错误是什么?代码没什么错
是不是你的 输入的 name 长度超过 20 字节了
你把错误的日志贴出了看看
正斜杠和反斜杠错了吧
楼主代码里对双引号用的是正斜杠,要转义输出应该是用反斜杠
#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;
}