【发布时间】:2016-03-30 03:08:33
【问题描述】:
假设我有一个自定义类型
typedef struct {
char code[3];
int max_capacity;
int state;
} Train;
我想使用 scanf 填充这些结构的数组以读取 3char 代码,问题是,我想直接使用 scanf 的输入命名“Train”类型,而不必像 A 在检索 scanf 值之前。
假设我输入了 TRI,例如我想将其命名为 TRI 以及 TRI.code = TRI
所以,避免这样的事情
void add_train(){
Train A
scanf(“%s”, &A.code)
并尝试直接命名
void add_train(){
Train scanfstring
scanf(“%s”, &scanfstring.code)
如果没有多次 scanf 调用或归因,最好的方法是什么?
【问题讨论】:
-
不,你不能。如果变量名取决于用户的输入,您将如何引用它?这没有任何意义。此外,您的
char code[3];至少需要 4 个单元格。一个额外的用于空终止符。 -
嗯?变量名必须在编译时已知(并且在运行时未知)
-
我对 c 编程和一般编程非常陌生,所以我可能会遗漏一些明显的东西。那么我应该先使用占位符变量名,然后在从 scanf 获取值后将其复制到重命名的变量中吗?
-
你所说的毫无意义。在编写程序时确定变量名称。