【发布时间】:2014-08-10 19:23:16
【问题描述】:
作为一名菜鸟,我一直在学习哈佛 CS50 课程。有一次它演示了一个 C 程序,该程序让用户输入他们的姓名,然后显示包含此输入的基本问候语。但是,CS50 演示似乎在序言中使用了一个特殊行,它允许在 C 中使用带有“string”和“GetString()”的字符串。
没有这个,我一直在尝试使用 getchar():
#include<stdio.h>
main(int argc, char *argv[])
{
printf("What's your name? ");
char name = getchar();
printf("Hello %c!\n", name);
printf("You're looking cool today.\n");
}
我从用户输入的任何内容中取回第一个字符,但是如果我尝试将其延长到一个字符数组,用于整个字符串的字符名 [],我会在编译时收到“初始化不正确”错误.然而,我在任何地方都看到提到 getchar(),像这样增加数组容量似乎是解决方案。我也在网上看到了 strcpy 的使用,但我一直无法完成这项工作。
我是否忽略了一些非常简单的事情?对此有任何见解,谢谢。
【问题讨论】:
-
也许你应该坚持使用
包含文件并使用他们的字符串方法,只要课程使用它并在课程使用时深入了解 C。您可以在这里找到标题和相关信息:https://manual.cs50.net/library/ -
您想向我们展示您尝试过的导致“不正确初始化”错误的代码吗?或许我们可以告诉您它有什么问题以及如何解决它?
-
在 C 中稳健地进行用户输入是很复杂的;您提到的
cs50.h函数的目的是让新手不必学习所有复杂的 C 用户输入,让他们继续编写有效的程序。一旦学生对语言更加熟悉了,他们就可以回去看看这个话题。 -
感谢您的建议,很高兴知道用户输入代码并非微不足道!我将继续学习,直到我更好地理解为止。
标签: c string char getchar cs50