#include<stdio.h>
#include<conio.h>
void sstring();
int main()
{
char ch1[10],ch2;
printf("Enter the value of first character : ");
scanf("%s",&ch1);
sstring();
getch();
return 0;
}
void sstring()
{ char ch2;
printf("Enter the value of second character : ");
scanf("%c",&ch2);
printf("Got the second character");
}
第二個scanf裏面的函數不起作用....程序不停止在第二個scanf上?第二個scanf裏面的函數不起作用....程序不停止在第二個scanf?
請注意,雖然你聲明瞭'sstring()',你沒有爲它指定一個原型。在C(但不是C++)中,形式'sometype function();'的聲明聲明瞭返回'sometype'的函數的存在,但是沒有指定參數列表(但它不是可變長度參數列表)。要爲不帶參數的函數聲明一個函數原型,寫'sometype function(void);'。爲了一致性,我建議用明確的'(void)'符號來定義函數。 –
另外,檢查'scanf()'的返回值是確定它成功的一個好主意。例如,你可以使用'if(scanf(「%9s」,ch1)!= 1)...讀取失敗...'。請注意數組名稱中缺少'&'。從技術上講,你傳遞的是一個數組(char(*)[10]')類型的數組地址,而不是'scanf()'所期望的char *。你的編譯器應該警告類型不匹配;如果不是的話,找出如何讓它這樣做或得到一個更好的編譯器。然後注意警告! –
你能爲我推薦一個好的編譯器,用於C和C++的Windows ...請分享我從哪裏可以得到它的鏈接... – kks