如果先輸入字串再輸入數字,比如用scanf("%s,%d",s,&v);的格式,系統會出錯。原因在於系統將逗號當作字串的一部分賦值給了字串。
#include#include#define len sizeof(struct student)
struct student
;int n;
struct student * creat() //定義函式,此函式返回乙個指向煉表頭的指標
else
p2=p1;
p1=(struct student*)malloc(len); //開闢動態儲存區,把起始位址賦給p1
scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score); //輸入其他學生學號
} p2->next=null;
return(head);
}void print(struct student *head)
while(p!=null); //當p不是空位址時
編譯器輸出結果不對。
將讀取字串的兩句話改為
scanf("%ld %s %f",&p1->num,p1-name,&p1->score);
或者
scanf("%ld %f %s",&p1->num,&p1->score,p1->name);//將字串移動最後輸入
字串讀取
有兩種方法可以讀c 字串 使用提取操作符 和getline函式。1 字串提取操作符 首先,它跳過前導空白字元,然後提取所有鄰近的非空白字元。當發現空白字元時,它就停下來。終止空白字元被留在輸入流中.提取操作符可以用來從鍵盤 cin流 或者使用開放式檔案流從檔案讀資料。例如,要把乙個值讀入字串 物件s...
多種資料庫的連線字串
mysql string driver com.mysql.jdbc.driver 驅動程式 string url jdbc mysql localhost 3306 db name 連線的url,db name為資料庫名 string username username 使用者名稱 string ...
C 字串讀取
char s 11 cin.getline s,11 讀取輸入當前行的11個字元到s中,但是存在問題 流快取裡面存在的多餘的位元組如果沒讀完,那麼有幾個流狀態標誌 eof fail bad good會出錯。這樣接下來的讀取就出錯了!需要cin.clear 來清除這些標識位才能繼續讀取接下來的數字。當...