linux環境下的gcc編譯器與vc6.0環境的編譯器

一、用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;

 

發佈了40 篇原創文章 · 獲贊 8 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章