【发布时间】:2019-12-18 16:11:01
【问题描述】:
我得到了这个练习:
想象一下,有人想写一封信。使用单个 scanf 命令执行输入每个句子。每个句子都存储在一个字符数组中 最佳长度。如果用户输入的行仅由破折号 (-) 组成,则文本为 假设完成。输入所有文本后,将其打印到 控制台。
我不太明白这意味着什么,但我决定尝试使用 scanf 写一封电子邮件
#include <stdio.h>
int main()
{
char name1[100];
char mail1[9999];
char name2[100];
printf("Dear ");
scanf("%s", name1);
scanf("%s", mail1);
printf("Sincerely,");
scanf("%s", name2);
return 0;
}
这是我能写的。我写了一个人的名字后写了“亲爱的”,我只写信的正文,但是如果我写了一个以上的字,我就不能在真诚的后面写任何东西
【问题讨论】:
-
%s格式说明符读取空格分隔的单词。 -
你应该使用
fgets。 -
请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?