gpt4 book ai didi

C++ - 将 FILE* 转换为 CHAR*

转载 作者:太空宇宙 更新时间:2023-11-04 14:40:34 29 4
gpt4 key购买 nike

我找到了一个从命令行参数 (argv[1]) 计算表达式的 C++ 源文件,但我现在想将其更改为读取文件。

double Utvardering(char* s) {
srcPos = s;
searchToken();
return PlusMinus();
}

int main(int argc, char* argv[]) {
if (argc > 1) {
FILE* fFile = fopen(argv[1], "r");
double Value = Utvardering(fopen(argv[1], "r"));
cout << Value << endl;
}else{
cout << "Usage: " << argv[0] << " FILE" << endl;
}
cin.get();
return 0;
}

但是,Utvardering 函数需要一个 char* 参数。如何将从文件 fopen 读取的数据转换为 char*?

最佳答案

函数 fopen 只是打开一个文件。要从那里获取字符串,您需要读取文件。有不同的方法可以做到这一点。如果您事先知道字符串的最大大小,则可以这样做:

const int MAX_SIZE = 1024;
char buf[MAX_SIZE];
if (!fgets(buf, MAX_SIZE, fFile) {
cerr << "Read error";
exit(1);
}
double Value = Utvardering(buf);

注意:此方法是 C 的典型方法,而不是 C++。如果你想要更多地道的 C++ 代码,你可以使用这样的东西(而不是 FILE 和 fopen):

ifstream in;    
in.open(argv[1]);
if (!in) { /* report an error */ }
string str;
in >> str;

关于C++ - 将 FILE* 转换为 CHAR*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/983728/

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