C 为什么可以';我不能键入带空格的字符串吗?
我目前正在练习struct,下面是我的简单代码。我现在有个问题,我找不到答案。 我的代码要求我键入歌曲的名称、艺术家和歌曲的持续时间。我输入了“我的闪电速度”,但只有“我的”这个词填满了歌曲的名字。“闪电”这个词充满了艺术家,而速度则充满了持续时间。为什么?我怎样才能修好它C 为什么可以';我不能键入带空格的字符串吗?,c,struct,C,Struct,我目前正在练习struct,下面是我的简单代码。我现在有个问题,我找不到答案。 我的代码要求我键入歌曲的名称、艺术家和歌曲的持续时间。我输入了“我的闪电速度”,但只有“我的”这个词填满了歌曲的名字。“闪电”这个词充满了艺术家,而速度则充满了持续时间。为什么?我怎样才能修好它 #define _CRT_SECURE_NO_WARNINGS #include <string.h> #include <stdio.h> #define SIZE 20 typedef stru
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
#define SIZE 20
typedef struct {
char name[SIZE];
char artist[SIZE];
int duration;
} songname;
songname FillSong();
int main()
{
songname songNumb1, songNumb2, songNumb3;
songNumb1 = FillSong();
songNumb2 = FillSong();
return 0;
}
songname FillSong()
{
songname tempC;
printf("\n");
printf("Enter the name of this song: ");
scanf(" %s", tempC.name);
printf("name: %s\n", tempC.name);
printf("Who is the artist? ");
scanf(" %s", tempC.artist);
printf("artist: %s\n", tempC.artist);
printf("What is the duration(seconds)? ");
scanf("%d", &tempC.duration);
printf("duration: %d\n", tempC.duration);
return tempC;
}
\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
#定义尺寸20
类型定义结构{
字符名称[大小];
字符艺术家[大小];
int持续时间;
}歌名;
歌曲名FillSong();
int main()
{
歌曲名称SongNumber1、SongNumber2、SongNumber3;
songNumb1=FillSong();
songNumb2=FillSong();
返回0;
}
歌曲名FillSong()
{
歌曲名tempC;
printf(“\n”);
printf(“输入这首歌的名字:”);
scanf(“%s”,临时名称);
printf(“名称:%s\n”,临时名称);
printf(“谁是艺术家?”);
scanf(“%s”,临时艺术家);
printf(“艺术家:%s\n”,临时艺术家);
printf(“持续时间(秒)?”;
scanf(“%d”、&tempC.duration);
printf(“持续时间:%d\n”,临时持续时间);
返回tempC;
}
默认情况下,scanf将读取第一组非空白字符。
考虑读一整行的歌曲名称或任何可能在名称中有空格的事物。
在某些情况下,您可能希望使用逗号或分号分隔的字段,中给出的表达式将有助于此类情况的处理默认情况下,scanf将读取非空白字符的第一个集合。 考虑读一整行的歌曲名称或任何可能在名称中有空格的事物。 在某些情况下,可能需要逗号或分号分隔的字段,中给出的表达式将有助于此类情况如果要输入带空格的字符串,则检测到新行或空格时,scanf()函数将停止读取尝试使用get()函数 语法:gets(变量名) gets函数仅在输入新行时停止获取输入。如果要输入带空格的字符串,请尝试使用gets()函数,当检测到新行或空白时,scanf()函数停止读取 语法:gets(变量名)
gets函数仅在输入新行时停止获取输入。scanf在读取输入时跳过空白(空格、制表符、换行符等)。要读取格式不固定的输入,最好一次读取一行
请阅读Brian W.Kernighan和Dennis M.Ritchie的《C编程语言》,了解更多信息。scanf在阅读输入时跳过空白(空格、制表符、换行符等)。要读取格式不固定的输入,最好一次读取一行
请阅读Brian W.Kernighan和Dennis M.Ritchie的“C编程语言”以了解更多信息。您是否已经阅读了
scanf
的手册页?嗯,我可以问一下手册页是什么吗?您可以在谷歌中键入“手册页scanf”。谷歌搜索“site:msdn.microsoft.com scanf”可以找到最新的(以及旧版本的)Microsoft C运行时的scanf()
文档。对于需要了解Microsoft规范的任何其他C函数,请清洗并重复此操作。到目前为止,这两个答案都不能阻止大于大小的字符串输入。您是否已阅读scanf
的手册页?嗯,我可以问一下手册页是什么吗?您键入“手册页scanf”进入谷歌。谷歌搜索的网站:msdn.microsoft.com scanf可以找到microsoft C运行时的scanf()
的最新(以及旧版本)文档。对于您需要了解Microsoft规范的任何其他C函数,请清洗并重复此操作。到目前为止,这两个答案都不能阻止字符串输入大于大小
。切勿建议将get()
作为任何问题的解决方案。阅读。不要建议将get()
作为任何问题的解决方案。阅读