English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

void main()
{
while(charingstep !=\'#\')
{
scanf(\"%c %s %d %d %d %d\",&charingstep,phonenum,&sh,&sm,&eh,&em);

sum_pay=(float)time_d*1.44 + (float)time_e*0.80 + (float)time_n*0.30;

printf(\"%s %d %d %d %d %f\\n\",phonenum,sh,sm,eh,em,sum_pay);

scanf(\"%c %s %d %d %d %d\",&charingstep,phonenum,&sh,&sm,&eh,&em);
sm=0;
sh=0;
em=0;
eh=0;
sum_pay=0.0;
time_d=0;
time_e=0;
time_n=0;
}}

不好意思 想請問一下

如果想一次輸入像黃色部份 那樣 一次多筆的資料

那如果讀到# 就停止

該怎樣寫他的scanf呢~

如果照上面的寫法的話

輸入成 a 123-4567 12 45 65 78 b 456-7891 12 34 56 78

這樣變成第2筆b 456-7891 12 34 56 78 沒有辦法完全讀進去

這......問題該怎麼解決呢 請各位先進指導一下!!

2006-07-25 15:49:11 · 1 個解答 · 發問者 nikeasyanzi 2 in 電腦與網際網路 程式設計

1 個解答

我的方法是:放棄使用 scanf 改用 gets 函式。

把 a 123-4567 12 45 65 78 b 456-7891 12 34 56 78 一筆資料經由 strtok 函式把每項字元、數值分開儲存至其他陣列,如果要計算一筆資料內的數值資料,把部分的數字字串經由 atoi 函式轉成「整數」和「浮點數」,另存至其他陣列,再加以計算即可。

2006-07-26 00:33:36 · answer #1 · answered by Big_John-tw 7 · 0 0

fedest.com, questions and answers