0

是否有可能在 scanf() 函数的帮助下打印到 IO 设备?

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

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

试试这个并帮助我。

4

2 回答 2

6

scanf函数从控制台读取输入并对其进行解析。它无法打印任何东西。这就是恰当命名printf的函数系列的用途。

于 2012-09-16T08:32:58.147 回答
3

to 的第一个参数scanf不是提示(就像您假设的那样),它是用于扫描输入的格式字符串。

scanf除非您的输入与预期的内容完全匹配,包括文字字符串等,否则这将失败"Name ?"。它也会在第一个空格处停止,因此输入udhayar kumar只会得到您的名字。如果您想要一个提示,只需预先输出它,例如:

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

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

但是请记住,未绑定的%s格式说明符scanf是一种使程序崩溃或给某人一个可以通过的安全漏洞的简单方法(请参阅“缓冲区溢出”)。那是因为没有对输入进行边界检查。

如果您想要一个体面的输入功能,请查看这个。它得到一整行(带有可选提示)并很好地处理错误情况。

于 2012-09-16T08:41:54.367 回答