用sscanf_s按指定格式读文件,出现乱码

我(小白学c/c++两个半月)只是想记录我的一些bug,大神勿进

读的文件:
文件
代码如下:
#include
#include
#include
#include
#include <Windows.h>

using namespace std;

int main() {
string line;
ifstream infile;
char name[32];
int age;
infile.open(“wei.txt”);

while (1) {
	getline(infile, line);
	if (infile.eof()) {
		break;
	}

	sscanf_s(line.c_str(), "name:%s age:%d", name,
		sizeof(name), &age);
	cout << "姓名:" << name << "\t\t\t年龄:" << age << endl;

}

infile.close();

system("pause");
return 0;

}
运行正确结果:
运行结果
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<以下是乱码的情况>
代码如下:
#include
#include
#include
#include
#include <Windows.h>

using namespace std;

int main() {
string line;
ifstream infile;
char name[32];
int age;
infile.open(“wei.txt”);

while (1) {
	getline(infile, line);
	if (infile.eof()) {
		break;
	}

	**sscanf_s(line.c_str(), "姓名:%s 年龄:%d", name,
		sizeof(name), &age);**
	cout << "姓名:" << name << "\t\t\t年龄:" << age << endl;

}

infile.close();

system("pause");
return 0;

}

运行结果:
乱码
原因是:
代码与文本不符合:
sscanf_s(line.c_str(), “姓名:%s 年龄:%d”, name,
sizeof(name), &age);
在这里插入图片描述

发布了14 篇原创文章 · 获赞 1 · 访问量 119

猜你喜欢

转载自blog.csdn.net/m0_45867846/article/details/104365903