gpt4 book ai didi

c - 使用 scanf 进行 while 循环来调用函数

转载 作者:行者123 更新时间:2023-11-30 18:37:58 24 4
gpt4 key购买 nike

我正在尝试为一个类进行分配,在该类中我们使用 scanf 函数创建 while 循环。基本上,该程序是一个计算器,用户应该能够输入诸如 add 20 之类的内容,而我的 main 函数应该能够从另一个 .c 调用函数,然后继续在循环中。

但是,这是我第一次编程,我不知道如何格式化或开始循环来扫描用户的输入,调用适当的数学函数,应用它,然后继续循环。

这是到目前为止我为循环所做的事情,令人惊讶的是,它不起作用:

#include "calc.h"
#include "stdheader.h"
int main(int argc, char ** argv){
int c;
char token[81];

while(c != EOF){
if (scanf("%s", token) == "clear"){
calc.clear();
}else{

}
}

return 0;
}

这是它应该能够调用的函数示例(或者至少是我为它们提供的函数)

int local;
local = 0;

void clear(void){
local = 0;
printf("\n%d", local);
}

void add(int c){
local = local + c;
printf("\n%d", local);
}

最佳答案

在 C 中,字符串(以及更一般的数组)不是一流的数据类型,不能通过 == 进行比较。此外,scanf() 在任何情况下都不会返回字符串 - 您应该仔细阅读文档。

更改:

if (scanf("%s", token) == "clear")

至:

scanf( "%s", token ) ;
if( strcmp( token, "clear" )

此外,测试 c == EOF 很危险,因为 c 尚未初始化。

int c = 0 ;

关于c - 使用 scanf 进行 while 循环来调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35331322/

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