1. 程式人生 > >程序清單4.2_praise1.c程序_《C Primer Plus》P62

程序清單4.2_praise1.c程序_《C Primer Plus》P62

C Primer Plus

// praise1.cpp : 定義控制臺應用程序的入口點。 // /* praise1.c -- 使用不同類別的字符串 */ /* 時間:2018年06月09日 22:21:56 代碼:程序清單4.2_praise1.c程序_《C Primer Plus》P62 目的:scanf() 只讀取了空格之前的英文單詞,而非整個語句 */ #include "stdafx.h" #define PRAISE "What a super marvelous name!" int _tmain(int argc, _TCHAR* argv[]) { char name[40]; printf("What's your name?\n"); scanf("%s", name); printf("Hello, %s. %s\n", name, PRAISE); getchar(); // 一般情況下有一個 getchar(),就可以看到輸出結果了 getchar(); // 有 scanf() 語句時 需加一個 getchar(); getchar(); // 這裏加了八句 getchar();才可以看到最終的輸出結果 getchar(); // 是因為 在輸入語句時輸入了: Hilary Bubbles getchar(); // Hilary 之後連空格在內共有 8 個 字符 getchar(); // 至於"所以然" 我並未明白,只是知道要這樣才解決顯示結果 getchar(); // 我想應該還有更好的解決辦法,不然後面一百字符時 咋辦 getchar(); // 待查中...... getchar(); getchar(); return 0; } /* 在VS2010中運行結果: -------------------------------------------- What's your name? Hilary Bubbles Hello, Hilary. What a super marvelous name! -------------------------------------------- google 翻譯如下: 你叫什麽名字? 希拉裏 泡泡 你好,希拉裏。 多麽美妙的名字! praise(稱贊)/marvelous(不可思議的) -------------------------------------------- 總結: 1>.scanf(); 輸入語句後,電腦只讀取了第一個單詞, 空格之後的所有字符均沒被輸出到屏幕上; 2>.但要最終顯示結果,要加入相應個數的 getchar(), 連空格在內之後的有幾個字符就要加幾個 getchar(); 3>.為什麽要加那麽多的 getchar();不明其理,相信 一定要更好解決辦法,待查中...... -------------------------------------------- */


程序清單4.2_praise1.c程序_《C Primer Plus》P62