if语句是否可以说是否输入了某些内容?

时间:2015-03-20 09:30:00

标签: c if-statement stdio

我正在做一个项目,我只是想知道是否有可能有一行说“如果没有输入”,并且会跟随一个提示声明。
例如,

if(id_ == NULL){printf("John Doe is absent.")}.

只是一个奇怪的问题,因为我想更多地探索C编程。

2 个答案:

答案 0 :(得分:1)

您可以使用scanf(或类似功能:fscanf,sscanf ...)执行此操作。 假设id_是int

if(scanf("%d",&id_)!=1){
      printf("John Doe is absent.");
}

这些函数返回成功匹配和分配的输入项数。

请参阅最高投票回答here以获取更多信息。

答案 1 :(得分:0)

#include <stdio.h>

void input_id(int **id){
    int num;
    printf("input id:");
    if(scanf("%d", &num)==1)
        **id = num;
    else
        *id = NULL;
}

int main(void){
    int id;
    int *id_ = &id;

    input_id(&id_);
    if(id_ == NULL){
        printf("John Doe is absent.\n");
    } else {
        printf("id : %d\n", id);
    }
    return 0;
}