| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1390 人关注过本帖
标题:求解为何D盘多了一个乱码txt文件?????
只看楼主 加入收藏
okokpypy
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2017-6-1
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
求解为何D盘多了一个乱码txt文件?????
#include <iostream>
#include <fstream>
using namespace std;

int main() {
ofstream fout("d:test.txt");
fout << "hello world!";
fout.close();

fout.open("d:test.txt", ios::in|ios::out);
fout.seekp(1, ios::end);
fout << "123";
fout.close();
return 0;
}
为何是乱码呢????好像去掉hello world!中的“!”就正常了为什么啊?!
搜索更多相关主题的帖子: close ios 文件 乱码 txt 
2020-10-14 23:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:20 
首先,你知道 "d:test.txt" 与 "d:\\test.txt" 的区别吗?

其次,你 fout.seekp(1, ios::end) 这句的目的是什么?为什么尾部还要再往后移一位,留下一个未赋值而不确定的字符?

程序代码:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ofstream fout( "d:\\test.txt" );
    fout << "hello world!";
    fout.close();

    fout.open( "d:\\test.txt", ios::in|ios::out );
    fout.seekp( 0, ios::end );
    // 上面两句用 fout.open( "d:\\test.txt", ios::app ) 替代会更直观
    fout << "123";
    fout.close();
}
2020-10-15 08:57
okokpypy
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2017-6-1
收藏
得分:0 
为了确认到底系统对跳过的字符做了什么 我用程序读取并显示出来
ifstream fin("d:\\test.txt");
    char c;
    while (fin.get(c)) {
    cout << c << " " << (int)c << endl;
    }
    fin.close();
发现是可以正确读取的 虽然windows的txt文件显示乱码 但不影响程序使用
而且跳过的字符变成了空字符('\0')也许是因为txt对空字符的理解不同才产生乱码的吧
2020-10-15 18:26
快速回复:求解为何D盘多了一个乱码txt文件?????
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018618 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved