gpt4 book ai didi

c - 输入 '/' 退出 C 程序

转载 作者:太空宇宙 更新时间:2023-11-04 06:52:13 25 4
gpt4 key购买 nike

我被困在一个练习中。每当我在输入中输入斜杠 (/) 时,循环都不会结束。

是否可以检查输入数据类型?因此,如果它是数字,则执行 show()。当它是 character('/') 时退出。

#include <stdio.h>
#include <stdlib.h>

void show(int);

int main(){
int quit = 0;

printf("Enter a number to display: \n* times the input number\n");
printf("Enter '/' to exit.\n");
printf("======================\n\n");

while(!quit) {
printf("Input: ");
int input;
scanf("%d", &input);
if (input == '/')
quit = 1; // Suppose to exit when input = '/'
else
show(input);

printf("\n\n");
}
}

void show(int n) {
for (int i=1; i<=n; i++)
printf("*");
}

最佳答案

关于 while 循环内的输入类型有错误:

int input;
scanf("%d", &input);

在请求 int 时,在这里输入“/”会导致未定义行为!

相反,您必须让输入为字符串(键入char *),检查字符串是否等于('/' ) 手动或通过 strncmp(input, "/", 1),检查它是否表示整数,然后使用 strtol(input, NULL, 10) 如果您的输入有效且不等于“/”,则转换为 int。

可能会涉及错误检查(不幸的是),例如处理外来字符,以及验证您的号码是否采用正则表达式 -?(\d)(数字字符串前的单个可选减号)的形式。

关于c - 输入 '/' 退出 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49645374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com