2012-09-16 95 views
-1

是否有可能在scanf()函數的幫助下打印到IO設備?如何在C編程中使用scanf()函數進行打印?

main() 
{ 
char str[30]; 
scanf("\n Name ?%s",&str); 

printf("\n Name Entered is %s",str); 
} 

試試這個,幫助我。

+5

你想用輸入函數做輸出嗎? – 2012-09-16 08:32:42

+0

是的。我發現它是可能的。 –

回答

5

scanf函數從控制檯讀取輸入並解析它。它無法打印任何東西。這就是恰當命名的printf功能家族的用途。

2

scanf的第一個參數不是提示符(因爲它看起來像你所假設的),它是用於掃描輸入的格式字符串。

,除非您的輸入相匹配究竟要的是什麼,包括文字串"Name ?"等等scanf將失敗。它也會停在第一個空白處,所以輸入udhayar kumar只會得到你的名字。如果你想有一個提示簡單地輸出它作爲事前這樣:

char str[30]; 
printf ("Name? "); 
scanf ("%s", str); 

printf ("Name Entered is %s\n", str); 

但是請記住,解開%s格式說明scanf是一個簡單的方法來使程序崩潰或給別人一個安全漏洞,他們可以通過獲得(請參閱「緩衝區溢出」)。這是因爲沒有邊界檢查輸入。

如果您想要一個體面的輸入功能,請檢查this one。它獲得一整行(帶有可選提示)並很好地處理錯誤情況。

+1

scanf(「\ n Name?%s」,&str); 這實際上有效,嘗試使用它,運行文件後,輸入「Name?udhay」,然後按Enter鍵,現在字符串「udhay」被分配給var str。檢查一下... Thanx for ur respons too。 –

+0

是的,它可以工作(對於'work'的一些定義),但是它限制了你的輸入。你看到的是_no_表示程序正在等待,並且你必須輸入不僅僅是你的名字,還有它的所有不必要的東西 - 這似乎是一個設計得非常糟糕的方式來獲取某人的名字。無論如何,這就是你的問題所要求的_still_不能用'scanf'打印。 – paxdiablo