Can not open a text file with the " fstream " [closed] - c++

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
My current difficulties will open "My File.txt" using fstream.
in "My File.txt" there is a long sentence. so I use the AnsiString to accommodate the text that is inside
void __fastcall TFormManager::Button1Click(TObject *Sender) {
AnsiString FileName, tmpText;
FileName = "\conf\db\My Text.txt";
if (FileExists(FileName)) {
ifstream data(FileName);
data >> tmpText;
}
}
i use C++ Builder XE6. Thx

Double the backslashes:
FileName = "\\conf\\db\\My Text.txt";

Sometimes you need to put a symbol in a string literal that has no equivalent in the keyboard or that can not be accepted directly in the source code. For example, if you need to add a line break in a string, many languages require you to use an equivalent escape sequence.
In C/C++, escape sequences are started by a single \. So for example:
\n = Enter
\t = Tab
If you want to use a single \ in your string literal, you must escape it as \\.
http://en.wikipedia.org/wiki/Escape_sequences_in_C
In many systems, you can use / to separate your path.

Related

Remove blank line in c++ [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 2 years ago.
Improve this question
How to remover blank lines after reading a text file using c++?
while(arry[i]="/n"){
i++;
}
This is my code.It gives some output.But it is not a expected output.
while (arry[i] == '\r' || arry[i] == '\n') {
i++;
}
And please add the checkpoint of the boundary of arry like that:
i < arry.length()
\r is a carriage return character; it tells your terminal emulator to move the cursor at the start of the line. So, \r allows to override the current line of the terminal emulator.
In C++ single quotes identify a single character, while double quotes create a string literal. 'a' is a single a character literal, while "a" is a string literal containing an 'a' and a null terminator

how to remove a substring of unknown length from a string - C++ [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I have a string (URL) which I know part of, but not all of it. Some of the string I want to remove, but the string can vary in length, so I can't use the erase() function from <string>.
An example URL I may work with:
https://github.com/username/repo-name
After parsing, I would like to be left with just repo-name
I know I can do this easily in shell with the sed command:
echo "https://github.com/username/repo-name" | sed 's/.*\///'
Ideally, I would like something I could turn into a function, so I could do something like:
string substring = sed("s/.*\///",var);
Please keep in mind that I do not know the full string to be removed. In the case of the URL I showed, I want everything before, and including the final '/', but, the username is subject to change. so from what I understand I can't use things such as erase() or rfind().
EDIT
All URLs I am parsing are GitHub URLs, so they will all be similar to this, another part of the program this will go in will ensure they all follow this same syntax.
Use rfind to get the location of the last slash then substr to return the right side of the string. Since substr's second argument defaults to "the end of the string" you only need to provide the beginning position:
#include <string>
std::string GetURLFilePath(const std::string& url) {
auto last_slash_location = url.rfind('/');
if(last_slash_location == std::string::npos || last_slash_location + 1 >= url.size()) {
return "";
}
return url.substr(last_slash_location + 1);
}
You didn't really say if you are expecting parameters (https://www.youtube.com/watch?v=YnWhqhNdYyk) so this will obviously not be exactly what you want if those exist in the string, but it'll get you to the right track.

Replace a particular word with another one in a file [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
How can I find a particular word in text file and replace that word with another one and write back the test to file(If text is paragraph separated).I can do replace word; if its not paragraph separated .using string.find and string replace.
As far as I understand you are comfortable with replacing words in a single paragraph and that you are doubtful regarding text with multiple paragraphs.
Please look into a function called "getline()" function.
This function reads entire your text until it encounters a "\n" element (Next line)
So you can use this getline function to get one whole paragraph into a string.
Using this getline function in a while loop allows you to get all the paragraphs from the text file
An example code has been provided below
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
string a,b;
a="he";
b="she";
fstream text("text.txt");
string line;
while (!text.eof( ))
{
getline(text,line);
cout<<line<<endl;
//This string "line" is basically a string containing your first paragraph
//ADD your find and replace code here for the string "line".
//The second time the while loop executes the string "line" will contain the second paragraph and so on..
}
}
}

C++ \n in a string (Not working) [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question appears to be off-topic because it lacks sufficient information to diagnose the problem. Describe your problem in more detail or include a minimal example in the question itself.
Closed 9 years ago.
Improve this question
I'm learning C++. Here's my problem.
http://prntscr.com/2m5flm
I created a function who can read Prop files like them (you can set the file beginning and ending tags with a function, searching a specified tag with a function who will return a string (containing the results).
Here's the main.cpp
#include <iostream>
#include "m_PFile_r.h"
using namespace std;
int main(int argc, const char * argv[])
{
m_PFile_r k;
k.open("prop.arg");
k.imNotaFag(true);
k.setOpenArg("$FILE_BEGIN$");
k.setCloseArg("$FILE_END$");
string lS;
lS=k.getArg("launchSentence");
cout << lS << endl;
string menu;
menu=k.getArg("progMenu");
cout << menu;
return 0;
}
MY QUESTION IS : Why doesn't it print the \n as a line return ?
Thanks :)
The file has new line characters in it, they are defining the end of the lines. When you enter the newline character in the file, it is being stored in that file not as a newline character, but the two individual characters "\" and "n". So when you then read in the file, those characters are read in just like the others.
You are over complicating this problem. If you would like to print out various phrases to the user, just include those phrases as string variables in your program.
String launchSentence = "This is the launch sentence.";
String progMenu = "Hit 1 For Add Hit 2 for Subtract";
These could then be printed with the normal COUT << progMenu method.
If your purpose with the text file is to keep all of the possible text strings isolated in one easy location, why not create a TextCommandPrompts.h, fill it with the String (character in C++) variables and include that in your main?
Edit - Because I can't comment yet and I want to respond to one - I thought that whatever text editor that was letting him write line by line would be messing this up. As in, its already doing the "\n" magic, and when he writes in the characters '\' and 'n' something mundane happened, and they stayed as regular characters.

how to replace ’ with ’ in perl [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I have below piece of code in Perl
my $file2 = "devil’s-claw-extract.html";
$file2 =~ s/’/’/ig;
print "$file2";
This code is working fine(means replacing ’ with ’) when running in konsole but not working in browser.
Please help me out.
Of course it “works”, and I will believe so until you produce a self-contained example that indicates otherwise.
Your first problem is that you are reinventing the wheel, there already is a module on CPAN to do such escaping for you:
use utf8; # because this source file contains special chars
use HTML::Entities;
my $file2 = "devil’s-claw-extract.html";
print encode_entities $file2;
Output:
devil’s-claw-extract.html
or with encode_entities_numeric:
use utf8;
use HTML::Entities 'encode_entities_numeric';
my $file2 = "devil’s-claw-extract.html";
print encode_entities_numeric $file2;
Output:
devil’s-claw-extract.html
Secondly, it is worth noting that your input string contains ’, a single right quote. This has the codepoint U+2019 (not U+0092, which is in a private use area. Conveniently, it decodes to ’ in the Windows-1252-encoding, but the actual encoding should always be explicitly set).
The apostrophe ', which you likely wanted, is U+0027 or &apos;.