擅长:python、mysql、java
<p>因此,这只适用于Linux系统,并且只适用于ASCII字符:</p>
<pre><code>import termios
import sys
def uppercase_input(prompt):
sys.stdout.write(prompt)
sys.stdout.flush()
old = termios.tcgetattr(sys.stdout.fileno())
new = old[:]
new[1] |= termios.OLCUC
termios.tcsetattr(sys.stdout.fileno(), termios.TCSANOW, new)
try:
return input().upper()
finally:
termios.tcsetattr(sys.stdout.fileno(), termios.TCSANOW, old)
result = uppercase_input("all uppercase? ")
print("yes: {}".format(result))
</code></pre>
<p>这使用了一些有趣的古老设置来将I/O转换成大写,而以前只有支持大写ASCII的终端。你知道吗</p>
<p>从<code>man tcsetattr</code>:</p>
<blockquote>
<p>OLCUC (not in POSIX) Map lowercase characters to uppercase on output.</p>
</blockquote>
<p>所以这个解决方案并不是真正可移植的。你知道吗</p>
<p>对于一个完全可移植的解决方案,您需要自己实现回声。你知道吗</p>