稍后在我的程序中,我想打印出用户在这里选择的目的地,我该怎么做?
void create(){
char name[200],from,to;
int age;
printf("Please enter your name :\n");
scanf("%s",&name);
printf("Please enter your age :\n");
scanf("%d",&age);
printf("Pick your current destination");
printf("\n1 for London\n2 for Manchester\n3 for Brighton\n4 for
Liverpool\n4 for reading\n5 for coventry\n");
scanf("%s",&from);
if(from == 1){
printf("Select your desired destination %s",&from);
from =("London");
答案 0 :(得分:1)
看来你的意思是
scanf( " %c", &from );
^^^^^
//...
if( from == '1' ){
^^^
答案 1 :(得分:0)
简而言之,如果您想要访问本地变量from
,声明内部功能create()
,则无法 [你可以希望变量在函数返回后位于同一地址并尝试访问同一个地址,希望该值仍然存在,但这是 UB ] 。 / p>
你能做的就是将它声明为全局,或者从函数
返回它// option 1) global variable
char from;
int main(){
... create(); // don't declare from inside the function, because it is already declared globaly
// do something with from
... }
// option 2) return from function - need to change the create function to return the from variable
char from;
int main(){
from = create();
// do something with from
... }
请注意,您错误地使用了scanf / printf
:
scanf("%s",&from);
应该是scanf("%c",&from);
,因为来自char
,而不是char[]
或char*
printf("Select your desired destination %s",&from);
应为printf("Select your desired destination %c",from);
答案 2 :(得分:0)
这里......程序没有位置的任何变量....这意味着你无法从任何地方获取要打印的数据....所以程序必须有程序中的数据本身....如果不是.....没有来源没有数据......
如果你想继续保存程序......你可以使用switch语句并在以后显示该值:
switch(from){
case 1:
printf("London\n");
break;
case 2:
printf("Manchestar\n");
break;
case 3:
printf("Brigeton\n");
break;
default:
//(default Option);
}
您还可以使用字符数组。 例如:
int from;
int location[3][10]={"London","Manchestar","Brigeton"};
printf("\n1.London\n2.Manchestar\n3.Brigeton");
printf("\nChoose whose city do you want to visit: ");
scanf("%d",&from);
printf("You have choosen %s",location[from-1]);
通过这种方式,我们可以为最终用户提供选择,我们也可以直接获取数据......