C语言环境问题

时间:2011-07-27 14:34:29

标签: c locale

我有一些问题,但我无法在任何地方找到答案。

所以,基本上,我知道什么是语言环境,我知道如何使用(设置)它,但我不知道的是

  1. 幕后工作如何,我很想知道。 所以,当我使用IO函数时,让我们说例如scanf做浮动,当我需要决定国家是否使用小数点或逗号(我实际上是从小数逗号国家:)),

  2. scanf函数“查看”以检查当前的语言环境?

  3. 但是如果我没有在我的代码中设置它,它默认是创建一些标准语言环境本身,还是从操作系统获取它?

  4. 例如,当您获得stdout stderr和stdin的控制台时,在代码部分?

1 个答案:

答案 0 :(得分:5)

默认情况下,您的程序将具有C区域设置。

当您运行setlocale(LC_ALL,"");时,您将从外部环境设置区域设置(或者您只能设置部分LC_*)。

通过调用setlocale(LC_ALL,"specific_locale");,您将设置特定的区域设置。

所有I / O函数都应遵循当前的语言环境(标准C I / O函数)。

代码后面的行为取决于您使用的操作系统和编译器。