Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you change the filename extension stored in a string in C++?

Alright here's the deal, I'm taking an intro to C++ class at my university and am having trouble figuring out how to change the extension of a file. First, what we are suppose to do is read in a .txt file and count words, sentences, vowels etc. Well I got this but the next step is what's troubling me. We are then suppose to create a new file using the same file name as the input file but with the extension .code instead of .txt (in that new file we are then to encode the string by adding random numbers to the ASCII code of each character if you were interested). Being a beginner in programming, I'm not quite sure how to do this. I'm using the following piece of code to at first get the input file:

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

I'm assuming to create a new file I'm going to be using something like:

outfile.open("test.code");

But I won't know what the file name is until the user enters it so I can't say "test.txt". So if anyone knows how to change that extenstion when I create a new file I would very much appreciate it!

like image 200
Mr. Ben Avatar asked Apr 16 '09 20:04

Mr. Ben


People also ask

What is the file extension name for the C program?

It is common practice across most platforms (ie: UNIX, Microsoft Windows, etc) that C source code files end with the ". c" extension. This is in contrast to C++ source code files which can and do vary in ending from ". cc" to".

Which command is suitable for changing filename extensions for a group of files?

There are two commands that you can use at the command prompt: ren and rename. Both of them do the exact same thing, so it's just a preference as to which one you use. As you can see above, the command changed all the files in that directory with a JPG file extension to ones with a PNG file extension.


1 Answers

I occasionally ask myself this question and end up on this page, so for future reference, here is the single-line syntax:

string newfilename=filename.substr(0,filename.find_last_of('.'))+".code";
like image 178
dvhamme Avatar answered Sep 25 '22 11:09

dvhamme