gpt4 book ai didi

c - 在C中读取不同数量的参数

转载 作者:太空宇宙 更新时间:2023-11-04 04:33:19 24 4
gpt4 key购买 nike

输入看起来像这样:

AND 1 0 2
OR 3 1 4
XOR 5 1 3
ENEE140 10 7 8 9
NOT 6 11

其中每行中的第一个参数是逻辑运算符,后面的数字是门。我想知道读取这些参数的最佳方式是什么,因为我不能只是 scanf("%s %d %d %d") 因为有些运算符 (ENEE140) 有超过 3 个整数参数(它有 4 个)。

最佳答案

将空格替换为空。那么这些可以被认为是单独的字符串。类似于(假设输入行称为 char * input):

    #include <stdio.h>
#include <stdlib.h>
int main()
{
char input[1000];
printf("Enter line, or press return when finished\n");
for(;;)
{
fgets(input, 999, stdin);
if (*input == '\n')
break;
char *begin = input;
char *end = input;
// remember string begin and end points
while (*end) ++end;
// replace spaces with null
for (;*begin;++begin) {
if (*begin == ' ') {
*begin = 0;
}
}
// Now parse each string

for (begin = input; begin < end; ++begin) {
if (begin == input) {
printf("Command: %s\n", begin);
} else {
int value = atoi(begin);
printf("Value: %d\n", value);
}
while (*begin) {
++begin; // skip to null
}
}
}
}

关于c - 在C中读取不同数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33678429/

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