| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 775 人关注过本帖
标题:帮帮忙,怎么不能输出到txt文件
只看楼主 加入收藏
a111234567
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2023-7-20
结帖率:100%
收藏
 问题点数:20 回复次数:8 
帮帮忙,怎么不能输出到txt文件
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 文件 输出 txt 
4 天前 01:38
a111234567
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2023-7-20
收藏
得分:0 
第二张图可以正常把$符号写进txt文件,第一张图不能把¥写进txt文件。
4 天前 01:42
a111234567
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2023-7-20
收藏
得分:0 
qDebug()<<ch;能正常输出¥
4 天前 01:50
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:288
专家分:2158
注 册:2023-6-29
收藏
得分:0 
编码问题, ¥是中文模式下的全角, 需要utf8支持, $这个是ascii码, 不需要utf8支持, qDebug()能正常输出, 那是因为你转成了utf8,你知道不转化就不能正常显示, 那么你为什么不直接把转化后的ch保存在文件中呢:
fwrite(ch,1,strlen(ch),fp);

4 天前 11:22
a111234567
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2023-7-20
收藏
得分:0 
回复 4楼 yiyanxiyin
写入txt文件的还是乱码
4 天前 12:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9056
专家分:54256
注 册:2011-1-18
收藏
得分:0 
第一幅图中调用的是 toUtf8,第二幅图中调用的是 toLatin1。
应该都调用 toLocal8Bit。
4 天前 12:42
a111234567
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2023-7-20
收藏
得分:0 
回复 6楼 rjsp
不行
4 天前 13:17
a111234567
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2023-7-20
收藏
得分:0 
回复 6楼 rjsp
刚才弄错了,现在可以写入到文件。只不过qDebug()<<ch;不能正常显示。
4 天前 15:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9056
专家分:54256
注 册:2011-1-18
收藏
得分:0 
回复 7楼 a111234567
又是这种毫无意义的回复。
你用的是 fopen( ……, "a" ) 追加写入,那么是 之前的编码不是utf8(因为编码不一致导致后面乱码,但与此问题无关),还是之后的utf8编码的文字写入错乱?

即便是第一幅图的代码,仅提供的代码也是没问题的(可能有问题的代码你没贴出来)。比如下面的测试代码,正确应该给local编码(中文Windows的话,默认是gbk),但我给的却是utf8(跟你第一幅图一样),在windows11上是没问题的(低版本的windows自带的记事本可能猜错编码而乱码,但即使如此,也不是文件有问题,而是系统自带的记事本太弱智)

程序代码:
#include <print>

int main( void )
{
    FILE* fp = fopen( "fuck.txt", "wb" );
    std::print( fp, "{}", (const char*)u8"¥\uFFE5" ); // 两个字符都是 ¥
    fclose( fp );
}

4 天前 15:44
快速回复:帮帮忙,怎么不能输出到txt文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017442 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved