关于scanf的具体了解
- scanf的返回值为成功读入的数值项数,读入数据时遇到了“文件结束”则返回EOF。
例:scanf("%d,%d",&a,&b);a、b为int 型,则函数返回值为2。
若只有a被成功读入,则返回值为1。
输入格式 - scanf("%d%d",&a,&b),%d连着写在输入数据时,数与数之间用空格/tab键/回车键分隔。
- scanf("%d,%d",&a,&b),%d之间用“,”隔开,则在输入时,数与数之间用“,”隔开。
格式指令说明 - “*”表示读入的数据将会被舍弃,带有此符号的格式指令不对应可变参数列表中的任何数据。
- 以一个非零的十进制整数形式出现。表示该格式指令最多读入的字符数。
例:c 读入域宽指定的数目个字符组成的字符序列(后面不会加上空字节),如果省略宽度则读入单字符。如%c或%1c读入单字符,%2c读入两个字符(后面不会加上空字节),以此类推。 - p 读入一个指针值。读入的字符序列应该与fprintf的%p产生的字符序列形式相同。
- n 不读入任何字符,而是把到该位置已读入的字符数存储到与之对应的int*指向的位置。
- 格式命令可以说明最大域宽。 在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。例如,希望向 address 读入不多于 20 个字符时,可以书写成如下形式:
scanf("%20s",address);