我需要询问用户绘制注释框的宽度和宽度,然后当我运行编译器时,它将绘制一个适当大小的框。这是我正在使用的代码:
int main() {
int i;
writePattern('/', '*', '/', ' ', ' ',1, LENGTH-2,1,0,0, LENGTH); //top of box being created
for(i=1; i<=5; i++)
writePattern('/', '*', ' ', '*', '/', 1,1, LENGTH-4, 1,1, LENGTH); //sides of box
writePattern('/', '*', '/', ' ', ' ', 1 , LENGTH-2,1,0,0,LENGTH); //bottom of box
return 0;
}
那我该怎么办呢?我是C的新手,所以我需要一些帮助。我知道我将不得不使用printf和scanf函数读取用户输入,但我不知道如何做到这一点。
答案 0 :(得分:0)
您是否只想获得打印和扫描方面的帮助?
int x, y;
printf("How wide do you want your box?");
if (!scanf("%d", &x))
//printf that they did it incorrectly and try again, probably in a while loop
printf("how wide?");
if (!scanf("%d", &y))
//printf that they did it incorrectly and try again, probably in a while loop
其中%d
将采用或打印一个数字,%s
一个字符串,%f
一个分数等,您可以查看其他任何内容。
EDIT2:添加了建议的错误处理
答案 1 :(得分:0)
请尝试以下代码:
printf("Enter the width: ");
int width;
if (scanf("%d", &width) != 1) {
printf("Invalid number!");
return 1; // Just return nothing or some error code?
}
printf("Enter the height: ");
int height;
if (scanf("%d", &height) != 1) {
printf("Invalid number!");
return 1; // Just return nothing or some error code?
}
答案 2 :(得分:0)
在继续之前......学习这么漂亮的语言是一个非常明智的想法!但是当你开始时,确保你从一开始就做正确的事。
我建议你不要使用scanf()
功能。如果用户没有输入所请求的内容,则会导致程序失败。您宁愿调用常规流函数,例如fgets()
,然后解析您获得的字符串。看看这另一个问题:Difference between scanf() and fgets()
你可能会得到有用的提示。