程序清單4.2_praise1.c程序_《C Primer Plus》P62
阿新 • • 發佈:2018-06-10
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