gpt4 book ai didi

C程序在输入大写字母时跳行?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:59 26 4
gpt4 key购买 nike

因此,当我运行程序时,如果我为第一个问题输入"is",它会提示这是哪种经销商。只有当我输入非大写字母时,我才能正确地运行整个程序并提示所有 printf 语句。例如:

Yes  
bartow ford
wash
brian cox
ford explorer (if i input 2001 ford explorer it skips the next two printf statements idk why)

etc. etc.

但是如果我使用大写字母,例如

Bartow Ford.

它跳过 printf。它需要什么类型的工作?我知道有些上下文很差,但我首先担心结构,然后回过头来使语言“漂亮”我的想法是让用户输入汽车来自哪里的经销商、需要对汽车做什么、车主、品牌等等,然后是任何其他信息。然后将其保存到我桌面上的一个单独文件中。非常感谢你们提供任何信息!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#define WASH 20
#define WAX 30
#define FULL 100
#define MINI 40
#define TINT 60

int main() {

int exit;

char type[40];
char car[40];
char name[40];
char work[40];
char dealer[40];
char comments[200];

float total;

FILE *elite;

elite = fopen("/Users/BlakePatterson/Desktop/Elite Detail/Customer.txt", "w");

printf(".\nIs this a dealer car or is this a customer car?.\n");
scanf("%s", type);

if (strcmp(type, "Yes") == 0) {

printf("What is the name of the dealership?.\n");
scanf(" %s", dealer);

printf("What type of work needs to be done to the car?\n\n 1.Wash.\n2.Wax.\n");
scanf(" %s", work);

printf("Please input the name of the person handling the car.\n");
scanf(" %s", name);

printf("Please input the make, model, year and condition of the car upon arrival.\n");
scanf(" %s", car);

printf("Do you need to make any more commentd?.\n");
scanf(" %s", comments);

printf("Are you finished? if so press 2 if not press 1.\n");
scanf("%d", &exit);
}

fprintf(elite,"%s%s%s%s%s", dealer, work, name, car, comments);
fclose(elite);
return 0;
}

最佳答案

您观察到的行为与大写字母无关,而与包含多个单词的答案有关。您不能使用 scanf("%s", dealer); 读取多个单词。初始空格是多余的,因为 %s 会跳过任何前导空格并将单个单词读入目标数组。随后对 scanf() 的调用将读取以下单词作为其他问题的答案。

您可以使用 fgets(dealer, sizeof dealer, stdin) 并删除结尾的换行符或使用 scanf("%39[^\n]", dealer); 读取同一行上的多个单词,最多 39 个字节。其他输入行也是如此,针对不同的数组大小进行调整。

关于C程序在输入大写字母时跳行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44739074/

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