【发布时间】:2016-01-31 22:56:21
【问题描述】:
我是 C++ 编程的初学者,我遇到了一个问题。 我希望能够将文件的内容转换为 char*,并且我使用了文件和字符串流。但是,它不起作用。
这是我的功能:
char* fileToChar(std::string const& file){
std::ifstream in(file);
if (!in){
std::cout << "Error: file does not exist\n";
exit(EXIT_FAILURE);
}
std::stringstream buffer;
buffer << in.rdbuf() << std::flush;
in.close();
return const_cast<char *>(buffer.str().c_str());
}
但是,当我通过将其内容输出到另一个文件中来测试该方法时,如下所示:
std::ofstream file("test.txt");
file << fileToChar("fileTest.txt");
我只是得到了很多像这样的奇怪字符:
îþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþ[...etc]
这里到底发生了什么?有什么我错过的吗? 如果有更好的方法来做到这一点,我很高兴知道!
【问题讨论】:
-
C++ 初学者了解
char*真是太遗憾了。 -
每个问题一个问题。如果您有新问题,请发布新问题。如果上下文相关,您可以包含指向此链接的链接。
-
StackOverflow 阻止我发帖,它说我只能每 90 分钟发帖一次。无论如何,我会在时间过后将另一个问题发布到一个新问题中。
-
@sciencelord:我能理解这让你很困扰。在您的情况下,在更短的时间内解决多个问题绝对没有问题,但正如您可能想象的那样,并非像 SO 这样的庞大网络中的所有新用户都表现得合理。这只是一种质量保证机制。