【发布时间】:2019-10-14 15:59:53
【问题描述】:
当我向用户询问地址时,每次输入数字时,我的程序都会结束,我意识到每次输入字符时它都会继续运行,但是当我同时输入字符串和数字时,它会自动结束
#include <stdio.h>
int main()
{
int createAccount;
char firstName[10];
char lastName [10];
char address[20];
char city[15];
int zip;
int existingUser;
int customerSupport;
int pendingStatements;
char userName[10];
printf("1. Create Account\n");
printf("2. Login to existing user\n");
printf("3. Customer support\n");
printf("4. Check pending statements \n");
printf("Enter: ");
scanf("%d, %d, %d, %d", &createAccount, &existingUser, &customerSupport, &pendingStatements);
if (createAccount == 1)
{
printf("Name: ");
scanf("%s", firstName);
printf("Last Name: ");
scanf("%s", lastName);
printf("Address: ");
scanf("%s", address);
printf("City: ");
scanf("%s", city);
printf("Zip: ");
scanf("%d", &zip);
}
else if (existingUser == 2)
{
printf("Username: ");
scanf("%s", userName);
}
}
【问题讨论】:
-
创建
scanf()是为了读取 f 格式化数据(扫描f)。用户输入与格式化相去甚远。首选fgets()(可能后跟sscanf())作为用户输入。