如何在scanf字符串中包含空格?
只要“主”变量只有一个字,该程序就可以工作。例如,CIS是有效输入,但计算机信息系统不是。我该如何解决这个问题如何在scanf字符串中包含空格?,c,char,scanf,C,Char,Scanf,只要“主”变量只有一个字,该程序就可以工作。例如,CIS是有效输入,但计算机信息系统不是。我该如何解决这个问题 #include<stdio.h> int main() { char major [51]; int classes; printf("What is your major? "); scanf("%50s", major); printf("How many classes are you taking this semester? "); scanf("%d",
#include<stdio.h>
int main()
{
char major [51];
int classes;
printf("What is your major? ");
scanf("%50s", major);
printf("How many classes are you taking this semester? ");
scanf("%d", &classes);
printf("Your major is %s and you are taking %d classes this semester.\n", major, classes);
}
#包括
int main()
{
查·梅杰[51];
int类;
printf(“你的专业是什么?”);
scanf(“%50秒”,大调);
printf(“你这学期要上多少课?”);
scanf(“%d”类和类);
printf(“你的专业是%s,本学期你要上%d课。\n”,专业,课程);
}
您的问题是扫描停止在第一个空白处。你需要做的是一直读,直到你读到了结束行字符
使用scanf可以做到这一点,但有更好的选择fgets()
立刻浮现在脑海中
对堆栈溢出的一些搜索将产生大量关于scanf()
vsfgets()
vs其他的主题。
您的问题是扫描停止在第一个空白处。你需要做的是一直读,直到你读到了结束行字符 使用scanf可以做到这一点,但有更好的选择
fgets()
立刻浮现在脑海中
对堆栈溢出的一些搜索将产生大量关于scanf()
vsfgets()
vs其他的主题。
您可以使用
%50[^\n]
匹配多达50个字符,直到遇到换行符,并将它们存储在主要[]
中。换行符将留在输入流中,但%d
转换说明符会自动跳过前导空格字符
请注意,如果用户输入的字符数超过50个,则在调用
scanf()
获取类数之前,输入流中将有多余的字符需要丢弃。您可以使用%50[^\n]
匹配最多50个字符,直到遇到换行符,并将它们存储在major[]
中。换行符将留在输入流中,但%d
转换说明符会自动跳过前导空格字符
请注意,如果用户输入的字符超过50个,则在调用scanf()
获取类数之前,输入流中将有多余的字符需要丢弃。重复问题:重复问题的可能重复:重复问题的可能重复