use*_*966 3 c string input scanf
我想限制scanf函数,所以当我输入例如一个char* array <String...>超过30个字符的时候,它就不会得到它而我的输出会出错.
char* array <String...>
我有一个暗示使用[^ n]或类似的东西,但我不明白该怎么做?我知道我可以使用,scanf("%30s"..)但我不希望输入有效,只是错误.
scanf("%30s"..)
任何帮助都会很棒.
pb2*_*b2q 6
如果你必须使用scanf那么我相信你可以做的最好的是使用宽度说明符,如:"%31s"你已经提到的那样,然后strlen用来检查输入的长度,并丢弃字符串并报告错误,如果输入超过您的限制.
scanf
"%31s"
strlen
或者可以跳过strlen另外使用%n格式字符串,例如"%31s%n".
%n
"%31s%n"
使用类似的格式字符串%[^\n]代替%s简单的指示功能继续读书,直到一个换行符,消费沿途其他空白字符.如果要允许输入包含空白字符,这将非常有用.
%[^\n]
%s
查看scanf的文档(这是手册页的副本).
归档时间:
13 年,6 月 前
查看次数:
18804 次
最近记录:
13 年 前