我正在开发一个 C 程序,我希望用户在标准输入中输入以下格式:
<integer1> <string> <optional-integer2>
当 integer2 始终存在时,我的程序正在运行。例如“3 只鸟 2”将运行良好。但是我尝试过的每一种方法都只会导致编程挂起,如果它接收到没有可选部分的输入,比如“5只猫”。如何让程序检查可选整数是否存在,如果不存在则跳过阅读它?
这是我正在使用的内容:
int main(){
//help();
size_t size = 20;
ssize_t len;
long num1 = 1111;
long num2 = 2222;
char *word;
char chunks[3][20];
printf("(enter command): ");
char delimeter;
char *cp;
int i;
while(1){
cp = chunks[0];
delimeter = ' ';
for(i = 0; i < 3; i++){
if(i == 2)
delimeter = '\n';
cp = chunks[i];
len = getdelim(&cp, &size, delimeter, stdin);
*(cp+(len - 1)) = '\0';
printf("cp: '%s'\n", cp);
}
for (i = 0; i < 3; i++){
printf("chunks[%d]: '%s'\n", i, chunks[i]);
}