2015-07-22 47 views
2

我目前正在开发一个项目,我需要做一些非常具体的工作。我需要使用char数组存储database的值,但我还需要将乘法的值存储在最后一个槽中,我不知道如何执行此操作。投射char变量并乘以它似乎在int上存储垃圾,因为我得到值的方式应该是它的范围。我尝试过的另一个建议是使用memset()手动设置值,但我不知道如何去做。将存储在数组中的char类型转换为int变量

这里是我的代码

int form_fill(int room_ID, char database[rooms * floors * req_data][20]) { 
    printf ("Enter the first name\n"); 
    fflush(stdin); 
    gets (database[room_ID]); 
    printf ("Enter the second name\n"); 
    gets (database[room_ID + 1]); 
    printf ("Enter the third name\n"); 
    gets (database[room_ID + 2]); 
    printf ("How many days will the guest stay?\n"); 
} 

理想情况下,天用户输入将被存储在database[room_ID + 3]作为char和更早全球声明的另一个变量,存储结果相乘,作为char,在database[room_ID + 4]。 任何人有任何解决方案?

ps。我知道使用gets是不安全的,但那是老师问的,所以我必须这样做。

+5

'fflush(stdin);'---未定义的行为。 –

+4

[FYR]'gets()'是**邪恶**,使用'fgets()'。 –

+4

“我知道使用gets是不安全的,但那是老师问的,所以我必须这样做。” - *总是质疑老师,他们可能会发现新的东西* –

回答

2

您的问题声明不是很清楚,但截至目前,通用的方式来实现你想要的是

  1. 以从用户输入的“多少天将与客人入住?”使用fgets()
  2. 使用strtol()字符串输入转换为int并将其存储在临时int变量中。
  3. 将您的全球价值乘以char
  4. 打印结果为database[room_ID+4]使用snprintf()
+1

这很好!非常感谢 –