| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:關於 scanf 的錯誤運作問題,請指教~
取消只看楼主 加入收藏
no_use
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2013-5-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
關於 scanf 的錯誤運作問題,請指教~
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
    char str[20];
    int A, B, C;
    
    printf("請輸入學生姓名:\n");
    scanf("%s", str); 
    
    printf("請輸入平時考、期中考及期末考成績:\n");
    scanf("%d %d %d", &A, &B, &C);
    
    printf("%s的平時考、期中考及期末考成績分別為:%d、%d、%d\n", str, A, B, C);    
    
    system("PAUSE");
    return 0;
}


此程式本可以正常運作的,例如當我輸入 CHAN 作為字串時~
但當我輸入字串「CHAN TAI MAN」時,程式便不能正常運作~
我明白「scanf("%s", str);」只會輸入空白位前的字串,即 CHAN~
但輸入 CHAN TAI MAN 後,程式便自動執行到尾,沒有停下來讓使用者輸入 ABC 的數值,最後輸出 ABC 的數值是沒有意義的數字~
請問為何會這樣呢?

還有另一問題,當我將「scanf("%s", str); 」換成「scanf("%5s", str); 」,但在輸入字串時輸入超過五個字元時,情況同上~
假設我輸入 CHANTAIMAN,程式便自動執行到尾,沒有停下來讓使用者輸入 ABC 的數值,最後輸出 ABC 的數值是沒有意義的數字~
程式到最後輸出字串是 CHANT,這是預期的結果沒錯,只是中間沒有停下讓使用者輸入 ABC 的數值~
請問為何會這樣呢?

[ 本帖最后由 no_use 于 2013-5-29 22:48 编辑 ]
2013-05-29 22:47
no_use
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2013-5-12
收藏
得分:0 
上面的大大解釋得很清楚,謝謝~
2013-05-30 23:15
快速回复:關於 scanf 的錯誤運作問題,請指教~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032569 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved