请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于setlocale的问题

老师您好:晚上好,我又来了
图片描述
关于setlocale,我的理解的话,就是说,fopen的时候,入参是中文,可能会有乱码问题,于是在写fopen之前,要用一下setlocale。

但是此处图中写setlocale是为什么呢,不是已经特意把文件名字写成英文了吗。

搜了百度百科,和菜鸟教程,都讲得比较暧昧(或许是太专业):
图片描述
图片描述

setlocale 的作用就是fopen吗,还是说针对写完setlocale以后,下面所有的方法的入参的编码编排,还是说包括哪些?

感觉不是很不明白setlocale 的作用

正在回答

3回答

bennyhuo 2021-01-09 19:33:12

setlocale影响的是整个程序运行时默认的编码环境,不只fopen

0 回复 有任何疑惑可以回复我~
  • 提问者 十三山入秋 #1
    噢噢,
    1.文件在书写的的时候,有一个编码(比如我们敲键盘,看到的是汉字)
    2.文件编译过程中,涉及 以某种方式解码,变成二进制,给电脑阅读
    3.然后,程序运行过程中,还有一个运行时编码环境
    是不是这样的?
    回复 有任何疑惑可以回复我~ 2021-01-09 19:46:08
  • bennyhuo 回复 提问者 十三山入秋 #2
    对。locale其实就是咱们在系统当中设置的语言和地区,例如zh 表示中文,CN表示中国大陆地区,合起来就是 zh_CN。
    回复 有任何疑惑可以回复我~ 2021-01-09 19:47:58
  • 提问者 十三山入秋 回复 bennyhuo #3
    噢噢,“locale其实就是咱们在系统当中设置的语言和地区”,此处,“系统”就是指 电脑的操作系统吧。
    
    emmm.....也就是说,我们代码的运行,
    一是电脑操作系统,
    二是我们用的工具(Clion,编译器)他有一个编码的东西,
    我们写的代码要以某种方式正常加解码,同时电脑本身(操作系统语言地区)也得配合,
    那是不是意味着,程序里面,只要有中文啥的,或者涉及到中文,就要设置setlocale呢。
    就比如上面,虽然,文件名用了sanguo.txt,但是,内容有中文,所以就要设置setlocale。这样推理的话,setlocale很常用
    回复 有任何疑惑可以回复我~ 2021-01-09 20:08:00
bennyhuo 2021-01-09 19:33:39

你可以先了解一下locale,google一下吧

1 回复 有任何疑惑可以回复我~
提问者 十三山入秋 2021-01-09 17:52:34

我的理解是:

    setlocale解决的是:fopen这个方法,接受处理入参的时候,入参是中文的情况,是为这个方法服务的

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信