c++ - 在 C++ 中如何更改存储在字符串中的文件扩展名?

标签 c++ encoding file-extension

好吧,事情是这样的,我正在我的大学学习 C++ 类(class),但我无法弄清楚如何更改文件的扩展名。首先,我们应该做的是读取 .txt 文件并计算单词、句子、元音等。嗯,我明白了,但下一步才是困扰我的事情。然后,我们假设使用与输入文件相同的文件名创建一个新文件,但扩展名为 .code 而不是 .txt(在该新文件中,我们将通过向每个文件的 ASCII 代码添加随机数来对字符串进行编码性格,如果你有兴趣)。作为编程的初学者,我不太确定该怎么做。我使用以下代码首先获取输入文件:

cout << "Enter filename: ";
cin >> filename;
infile.open(filename.c_str());

我假设要创建一个新文件,我将使用类似的东西:

outfile.open("test.code");

但是在用户输入之前我不知道文件名是什么,所以我不能说“test.txt”。因此,如果有人知道如何在我创建新文件时更改该扩展名,我将不胜感激!

最佳答案

我偶尔会问自己这个问题并最终进入此页面,因此为了将来引用,这里是单行语法:

string newfilename=filename.substr(0,filename.find_last_of('.'))+".code";

关于c++ - 在 C++ 中如何更改存储在字符串中的文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/757933/

相关文章:

unicode - 对 Joel Spolsky 的 Unicode 文章的澄清

delphi - Indy 升级后的编码问题

c++ - 如何用我自己的程序打开一个文件并让它调用另一个程序?

Java获取没有子字符串的文件扩展名

python - 如何提取 zip 文件夹中的文件?

C++ 'No matching function for call to' 模板

c++ - D3D11 CreateSwapChainForHwnd 失败,出现 DXGI_ERROR_INVALID_CALL 或 E_INVALIDARG

c++ - 日历运行无限循环

c++ - Polygon Offset/Minkowski sum with a sphere 算法

c# - XMLDocument -> Byte[] ...如何回到 XMLDocument?