编写一个程序,提示用户输入电话号码

1 c

我正在编写一个程序,向用户提供表格(xxx)xxx-xxxx中的电话号码,然后以C语言显示xxx.xxx.xxxx格式的号码.

#include <stdio.h>

int main(void) {    
    int d1, s2, d3;

    printf("enter phone number[(xxx) xxx-xxxx]:"); //phone number to be entered
    sscanf("%d %d-%d", d1, s2, d3); //to read input in above format
    printf("you entered %d.%d.%d", d1, s2, d3);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是scanf无法读取()圆括号输入的数据.

aja*_*jay 5

你打算用scanf而不是sscanf.此外,您应该记录要写入的变量的内存地址scanf.您应该将格式字符串更改scanf"".scanf返回成功分配的输入项数.检查此值3以查找输入是否以所需格式输入.

#include <stdio.h>

int main(void) {    
    int d1, s2, d3;
    int val; // to check if scanf was successful

    // newline causes the string to be immediately 
    // written to stdout

    printf("enter phone number[(xxx) xxx-xxxx]:\n"); 
    val = scanf("(%d)%d-%d", &d1, &s2, &d3);

    // check if scanf was successful
    if(val == 3)
        printf("you entered %d.%d.%d", d1, s2, d3);
    else 
        printf("input not in the correct format.\n");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)