采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好:晚上好,我又来了 关于setlocale,我的理解的话,就是说,fopen的时候,入参是中文,可能会有乱码问题,于是在写fopen之前,要用一下setlocale。
但是此处图中写setlocale是为什么呢,不是已经特意把文件名字写成英文了吗。
搜了百度百科,和菜鸟教程,都讲得比较暧昧(或许是太专业):
setlocale 的作用就是fopen吗,还是说针对写完setlocale以后,下面所有的方法的入参的编码编排,还是说包括哪些?
感觉不是很不明白setlocale 的作用
setlocale影响的是整个程序运行时默认的编码环境,不只fopen
噢噢, 1.文件在书写的的时候,有一个编码(比如我们敲键盘,看到的是汉字) 2.文件编译过程中,涉及 以某种方式解码,变成二进制,给电脑阅读 3.然后,程序运行过程中,还有一个运行时编码环境 是不是这样的?
对。locale其实就是咱们在系统当中设置的语言和地区,例如zh 表示中文,CN表示中国大陆地区,合起来就是 zh_CN。
噢噢,“locale其实就是咱们在系统当中设置的语言和地区”,此处,“系统”就是指 电脑的操作系统吧。 emmm.....也就是说,我们代码的运行, 一是电脑操作系统, 二是我们用的工具(Clion,编译器)他有一个编码的东西, 我们写的代码要以某种方式正常加解码,同时电脑本身(操作系统语言地区)也得配合, 那是不是意味着,程序里面,只要有中文啥的,或者涉及到中文,就要设置setlocale呢。 就比如上面,虽然,文件名用了sanguo.txt,但是,内容有中文,所以就要设置setlocale。这样推理的话,setlocale很常用
你可以先了解一下locale,google一下吧
我的理解是:
setlocale解决的是:fopen这个方法,接受处理入参的时候,入参是中文的情况,是为这个方法服务的
登录后可查看更多问答,登录/注册
如果通向大牛的道路有捷径,那就是先学好C语言
1.6k 3
1.1k 4
1.3k 9
1.6k 1
880 2