gpt4 book ai didi

c++ - 我的 C++ 程序中的文件输入有问题

转载 作者:行者123 更新时间:2023-11-28 05:38:42 25 4
gpt4 key购买 nike

我的代码可以编译,但由于某种原因出现了一个错误:

Error:Multiple markers at this line - Invalid arguments ' Candidates are: void open(const char *, enum std::_Ios_Openmode) ' - no 
matching function for call to 'std::basic_ifstream::open(std::__cxx11::string&)'

我似乎无法弄清楚为什么会抛出此错误。

这是我的代码:

    #include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
int array_for_numbs[10];
int numbers[9]={1,2,3,4,5,6,7,8,9};
int counttarr[9]={0};
ifstream fileinpt;
int num, dgt;
string txtfile;
cout<<"enter the test file:";
cin >> txtfile;
fileinpt.open(txtfile);// this line is where the error pops up :(
int i=0;
while (!fileinpt.eof())
{
fileinpt >> array_for_numbs[i];
i=i+1;
}
fileinpt.close();
for(int i = 0; i < 10; i++)
{
num=array_for_numbs[i];
do
{
dgt=num%10;
num=num/10;
}while(num>0);
for(int i = 0; i < 9; i++)
{
if(dgt==numbers[i])
{
counttarr[i]=counttarr[i]+1;
}
}
}
cout<<"Digit \t"<< "Count \t"<<"Frequency "<<endl;
for(int i = 0; i < 9; i++)
{
float frq=(float)counttarr[i]/(float)100;
cout<<(i+1)<<"\t"<< counttarr[i]<<"\t" <<frq<<endl;
}
system("pause");
return 0;
}

最佳答案

“打开”函数文件名参数具有 char* 数据类型,但是,您正试图传递 std::string 类型路径。 Open 函数是一个不知道 std::string 类型的 C 函数。

您必须将 std::string 转换/转换为 char*

使用;

fileinpt.open(txtfile.c_str());

关于c++ - 我的 C++ 程序中的文件输入有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634379/

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