一、用scanf語句作爲輸入時,會在緩衝區中留下一個回車符,如果是第一次調用gets(s)函數,它會將這個回車符讀入,導致s中只有一個回車符,而其他內容無法讀取。
1、vc6.0環境下的解決方法:
在gets(s)之前加入fflush(stdin);用於清空緩衝區。
2、linux環境下的gcc編譯器解決方法:
在gets(s)之前加入getchar();讀回車符讀取掉。
二、結構體的定義
如果如下定義:
typedef struct rules
{
char attr_A[101];
char attr_B[101];
}rule;//rule是struct rules的別名,即rule與struct rules是等價的
linux環境下聲明變量時,rule前一定不要加struct,如rule *rulearray;
vc6.0環境下聲明變量時,rule前可加可不加struct,如struct rule *rulearray或rule *rulearray;
如果如下定義:
struct rules
{
char attr_A[101];
char attr_B[101];
};
linux環境下聲明變量時,rules前一定要加struct,如struct rules *rulearray;
vc6.0環境下聲明變量時,rules前可加可不加struct,如struct rules *rulearray或rules *rulearray;