/*get_int*/
/*目標1.實現可循環輸入,輸入特定按鍵即可退出*/
/*目標2.可以識別錯誤,並給予用戶機會重新輸入*/
#include
#include"get_chooise.c"
#define size 81
void get_number(int quantity, int number[]);//一個讀取數字函數的聲明
void get_char(int quantity,char ch[]);//一個讀取字符函數的聲明
int main()
{
void get_number(int quantity, int number[]);
void get_char(int quantity,char ch[]);
int quantity_in,chooise;
int number_in[size];
char char_in[size];
printf("請您選擇您要輸入的數據類型。\n");
chooise=get_chooise();
switch(chooise)
{
case 1:
printf("您選擇是讀取一定數量的數字\n");
get_number(quantity_in, number_in[size]);
break;
case 2:
printf("您選擇的是讀取一定數量的字符\n");
get_char(quantity_in,char_in);
break;
default:
printf("退出。\n");
break;
}
system("pause");
return 0;
}
/*讀取一定數量數字的函數原型*/
void get_number(int quantity,int number[])
{
int order;
for(order=0;order<=quantity-1;order++)
{
scanf("%d",&number[order]);
putchar('\n');
}
}
/*讀取一定數量的字符的函數原型*/
void get_char(int quantity,char ch[])
{
int order;
for(order=0;order<=quantity;order++)
{
scanf("%c",&ch[order]);
putchar('\n');
}
}
/*另一個函數源文件*/
/* get_chooise.c*/
#include
int get_chooise()
{
int chooise,judgement;
char character;
printf("你好,請從一下序列對應的選項選擇您要輸入的數據類型。\n");
printf("1,輸入你需要輸入的數字的個數及要輸入的數\n");
printf("2.輸入你需要輸入字符的個數及要輸入的字符\n");
while((judgement=scanf("%d",&chooise))!=1)
{
while((character=getchar())!='\n')
{
putchar(character);
}
printf("不是一個數字,請鍵入一個1~2的數字。\n");
if(chooise<=1&&chooise>=2)
{
printf("請輸入1或者2\n");
scanf("%d",&chooise);
}
while(scanf("%d",&chooise)!=1&&(chooise2))
continue;
}
return chooise;
}
你的主程序裡面,所有的局部變量都沒有初始化呀。當然調用不起來。你沒有初始化quantity_in,它會自動被系統初始化為0,那按照你的程序就是一個也
不輸入,即便不是0,你不初始化它,程序也就不知道你要輸入幾個整數或字符,當然也調用不起來