在C中打印和扫描

时间:2013-01-25 18:48:39

标签: c loops printf scanf

我需要询问用户绘制注释框的宽度和宽度,然后当我运行编译器时,它将绘制一个适当大小的框。这是我正在使用的代码:

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函数读取用户输入,但我不知道如何做到这一点。

3 个答案:

答案 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一个分数等,您可以查看其他任何内容。

编辑:woops我忘记了&amp;引用变量的地址

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()
你可能会得到有用的提示。