gpt4 book ai didi

c++ - 是否可以使用 wfstream 和 fstream 打开同一个文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:23:20 25 4
gpt4 key购买 nike

实际上我有一个要求,我需要在代码的一部分使用 wfstream 文件实例打开同一个文件,并在代码的另一部分使用 fstream 实例打开它。我需要访问一个文件,其中用户名是 std::wstring 类型,密码是 std::string 类型。我如何在代码的同一部分获取两个变量的值? 就像您在下面看到的那样,我需要从文件中获取用户名和密码的值并将其分配给变量。无法进行类型转换。请不要给出那个解决方案。......文件.txt ......

用户名-amritha密码-rajeevan

代码如下:

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>


int main()
{


std::string y;
unsigned int l;
std::wstring username;
std::wstring x=L"username";
std::wstring q;
std::string password;
std::string a="password";



std::cout<<"enter the username:";
std::wcin>>username;
std::cout<<"enter the password:";
std::cin>>password;
std::wfstream fpp("/home/aricent/Documents/testing.txt",std::ios::in | std::ios::out );

std::getline(fpp,q);
if (q.find(x, 0) != std::string::npos) {

std::wstring z=q.substr(q.find(L"-") + 1) ;
std::wcout<<"the username is:"<<z;
fpp.seekg( 0, std::ios::beg );
fpp<<q.replace(x.length()+1, z.length(), username);



}

fpp.close();
std::fstream fp("/home/aricent/Documents/testing.txt",std::ios::in | std::ios::out );
std::getline(fp,y);

if (y.find(a, 0) != std::string::npos)
{

unsigned int len=x.length()+1;
unsigned int leng=username.length();
l=len+leng;
fp.seekg(l+1);
std::string b=y.substr(y.find("-") + 1) ;
fp<<y.replace(a.length()+1, b.length(), password);

}
fp.close();
}

最佳答案

not recommended同时打开同一个文件的多个流。另一方面,如果您不写入文件,而只读取(因此,将使用 ifstreamwifstream),那可能是安全的。

或者,您可以简单地打开一个 wfstream,读取用户名,关闭流,打开一个 fstream 并读取密码。

如果可以选择,请完全避免混合编码文件。

关于c++ - 是否可以使用 wfstream 和 fstream 打开同一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34203115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com