2012-09-16 68 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