我有很多的麻烦缠绕我的头周围调用函数并在主程序使用它们以后再次使用的字符功能。我还没有找到答案深入解释为什么这不会运行。我知道参数属于被调用的函数括号内,但我希望用户输入在被调用的程序中开始。这甚至有可能吗?理论上,函数会询问用户一年,检查它是否在某些参数内,然后将其返回到主函数,我希望最终能够将其存储在数组中。现在,有人能告诉我如何在这个初级项目中完成这项工作吗?先谢谢你!定义返回后在主程序
#include <stdio.h>
char year_info();
int main(void)
{
int menu_selection;
char year;
printf("Please choose from the following menu: \n1. Insert a new movie\n2. Show movie\n3. List all\n4. Exit\n");
scanf("%i", &menu_selection);
switch (menu_selection)
{
case 1: year = year_info();
printf("%c", year);
break;
}
}
char year_info()
{
int year_input;
printf("\nYear: ");
scanf("%i", &year_input);
if (year_input > 2016 || year_input < 1920)
{
printf("Sorry, I do not recognize this command. Please try again.\n");
}
else
{
int year = year_input;
return year;
}
}
'char'(通常)是一个8位整数。根据编译器的不同,它可以从-128到127,或从0到255的值。['scanf'](http://en.cppreference.com/w/c/io/fscanf)格式'“%i “'读入一个'int'变量,'int'通常是* 32 *位宽,从负二十亿增加到二十亿。当然,你可以看到一些问题,试图将一个或两个千分之一的值放入一个不能保持这个大值的变量中。 – 2014-12-03 20:48:54
'炭year_info();' - >'INT year_info();','炭year_imput;' - >'INT year_imput;','的scanf( “%i” 的,year_imput);' - >'的scanf (“%i”,&year_imput);'并且有一个不返回值的路径。 – BLUEPIXY 2014-12-03 20:50:39
那么我应该使用%d吗? – 2014-12-03 20:50:57