01 按指定格式读写文件出现乱码

简介: ##按指定格式写文件使用stringstream

20200622182503253.png##按指定格式写文件使用stringstream

#include<iostream>
#include<sstream>
#include<fstream>
#include<string>
#include<Windows.h>
using namespace std;
int main(void) {
  string name;
  int age;
  ofstream out;
  out.open("指定格式读取.txt", ios::out | ios::trunc);
  while (1) {
    cout << "请输入姓名:【ctrl + z 退出】";
    cin >> name;
    if (cin.eof()) {
      break;
    }
    cout << "请输入年龄:";
    cin >> age;
    stringstream ret;
    ret << "name: " << name << "\t\t\tage:" << age << endl;
    out << ret.str();
  }
  out.close();
  system("pause");
  return 0;
}

2020062218223452.png

文件内容:

20200622182243528.png

按照指定格式读取,因为C++没有比较优雅的方式,所以我们采用的是C语言的方式---->sscanf_s

正确代码如下:


#include<iostream>
#include<sstream>
#include<fstream>
#include<string>
#include<Windows.h>
using namespace std;
int main(void) {
  char name[64];
  int age;
  string lien;
  ifstream in;
  in.open("指定格式读取.txt");
  while (1) {
    getline(in, lien);
    if (in.eof()) {
      break;
    }
    sscanf_s(lien.c_str(), "name:%s age:%d", name, sizeof(name), &age);
    cout << "姓名:" << name << "\t\t\tage:" << age << endl;
  }
  in.close();
  system("pause");
  return 0;
}


20200622182503253.png

错误的情况:


1:name age 和 tx文档不一致导致出现乱码

20200622182601983.png

2:" : "与文本不一致

20200622182815617.png

20200622182815617.png

注意上面的问题即可正确读取了:

2020062218285987.png


目录
相关文章
|
1月前
CSV写入文件追加新的内容,文件编码处理
CSV写入文件追加新的内容,文件编码处理
41 8
|
6月前
|
存储 Python
使用格式化的方式读写文本文件
使用格式化的方式读写文本文件
40 0
|
6月前
|
C语言
用格式化的方式读写文本文件
用格式化的方式读写文本文件
37 4
|
存储 数据挖掘 数据处理
【解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG 】
【解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG 】
757 0
|
6月前
|
C#
C# 获取文件编码格式
C# 获取文件编码格式
57 0
convmv命令对文件名进行编码转换
convmv命令对文件名进行编码转换
238 0
|
Linux Windows JavaScript
csv文件乱码
问题描述: 生成的csv文件,设置为UTF-8格式,在windows上用EXCEL打开的话会乱码,在linux上用vim或者cat打开查看正常;设置为GBK格式的话,在windows上用EXCEL打开正常,但在linux上乱码   解决方法: 在csv文件头部的最前面加bom   BOM(Byte Order Mark),是 UTF编码方案里用于标识编码的标准标记,在 UTF-16里本来是 FF FE,变成 UTF-8就成了 EF BB BF。
1352 0
|
文件存储 Python
文本文件的编码格式
文本文件的编码格式
235 0
|
JavaScript Android开发
nodejs指定编码写入文件
牙叔教程 简单易懂
447 0
|
Linux
Linux查看文件编码格式及文件编码转换
Linux查看文件编码格式及文件编码转换 在Linux 中专门提供了一种工具convmv进行文件 名 编码 的转换 ,可以将文件 名 从GBK转换 成UTF-8编码 ,或者从UTF-8转换 到GBK。
3164 0