gpt4 book ai didi

c - 无法读取 C 中的 token

转载 作者:太空宇宙 更新时间:2023-11-04 08:31:43 26 4
gpt4 key购买 nike

我似乎无法弄清楚,如何正确读取具有以下外观的 .txt 文件:(示例)

+ 1
+ 2
- 2
+ 5
p -1
? 5

等等...我现在需要的是存储运算符/ token ,它可以是 '+' '-' 'p' 或类似的东西,以及 两个不同变量 后面的 int 因为我需要检查它们稍后。

char oprtr[1];
int value;
FILE *fp = fopen(args[1], "r");

while(!feof(fp) && !ferror(fp)){
if(fscanf(fp, "%s %d\n", oprtr, &value) < 1){
printf("fscanf error\n");
}
if(strcmp(oprtr, "+") == 0){
function1(bst, value);

} else if(strcmp(oprtr, "-") == 0){
function2(bst, value);

} else if((strcmp(oprtr, "p") == 0) && value == -1){
function3(root);
//some other functions and so on...
}

在循环中打印出 oprtr 和 value 表明它们没有正确地显示为红色,但它确实可以编译。有人有解决方案吗?

最佳答案

你有单个字符,你可以使用 == 来比较它们而不是 strcmp。只需成对读取输入并使用 switch 作为示例。

char c;
int x;

while(fscanf(fp, "%c %d", &c, &x) == 2)
{ switch(c)
{ case '+': /* ... */
}
}

关于c - 无法读取 C 中的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28065457/

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