CodeBlocks on Mac are not reading file - c++

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int A;
ifstream file("file.txt"); // there is a single "8" in the file
file >> A;
cout << A; // I get 0 always
return 0;
}
While I'm not new to CodeBlocks, I'm new to CodeBlocks on Mac. I have changed the "Execution working directory" and it still does not work, please help.

Don't change the execution working directory.. When you're reading from file, try writing the full directory where is that file, for example:
// this is your file.txt location
ifstream file("C:\\Desktop\\file.txt"); // this is for Windows
and then run a program.
If it still doesn't work, try watching this tutorial: https://www.youtube.com/watch?v=De6trY8FRYY

Related

CodeLite IDE is not reading file

So I have a Test folder inside my workspace in CodeLite and inside Test folder I have:
main.cpp
test.txt
The problem is whenever I try to read from test.txt, the compiler deletes the file content and writes "Debug/main.cpp.o" inside my test.txt file. For example, if my txt file contains the following text:
Abcd ef
And my code inside main.cpp:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
string data;
ifstream infile;
infile.open("text.txt");
cout << "Reading from the file" << endl;
infile >> data;
return 0;
}
When I run my code the output should be:
Reading from file
Abcd
ef
But instead, the output is:
Reading from file
And now my test.txt contains:
Debug/main.cpp.o
I am also inserting what my folder contains:
I don't know why it does this. Can anyone help?
Codelite generates $(project).txt ($(project) is Test in your case) with all objects filename for compilation (as response file (to bypass limit of command line length when there are too many files)).
Either place project in another directory or rename the file or project to avoid the conflict with that file.
This is happening because you haven't use/printed the data variable.
Use this code
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main(){
string data;
ifstream infile;
infile.open("test.txt");
cout<<"Reading from file"<<endl;
while (getline(infile,data))
{
cout<<data<<endl;
}
return 0;
}

Using fstream doesn't write results

I have a problem with fstream. It takes data from one file but usually it doesn't write it in a result file. I didn't have this problem before and I hadn't changed anything in settings when this started happening. Also restarting computer used to do the trick and it would start working but not anymore.
Example:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("in.txt");
ofstream out("out.txt");
int a;
in >> a;
out << a;
in.close();
out.close();
return 0;
}
if I write cout << a; it shows the number that was in data file, but with out >> it doesn't change the result file out.txt. All files are in the same folder.
If it makes a difference: I'm using codeblocks

Input File problems: input_file.fail() is true and idk why

My code is supposed to open a file and work with the data that it reads in. My code looks like this:
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
ifstream input_file;
input_file.open("practice.txt");
if (input_file.fail())
{
cout << "Attempt to open file failed." << endl;
}
else
It always returns "attempt to open file failed". I am definitely using the correct file name, so what are some reasons that the file isn't opening?
How do I solve this issue?
EDIT: spoke to another girl in my class with a Mac and her code works perfectly when not run on Mac but won't open the file when she runs it on her computer so I think it's a problem with my compiler. Thanks for the help!!

C++ "Entry Point Not Found" when trying to write to file

I'm trying to write to a file in C++, however as soon as I run my .exe file, I get the following error
"The procedure entry point __gxx_personality_v0 could not be located in the dynamic link library C:/Users..."
Here is my code
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ofstream outfile ("test.txt");
outfile << "Hello World\n"; // error happens here
return 0;
}
I managed to fix the problem by copying libstdc++-6.dll from C:\MinGW\bin into the directory of my project!
try this code
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
int main()
{
ofstream outfile;
outfile.open("text.txt")//opening the file
outfile<<"Hello world";
outfile.close();//closing the file
return 0;
}
whenever we are dealing with files, there should be opening the file and closing the file. For this program , the arguments inside the main function is not needed.

Eclipse - how can I stop my program?

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char c;
ofstream outFile("/home/gnome/Music/file.txt", ios::out);
while (cin >> c) {
outFile.put(c);
}
outFile.close();
return 0;
}
When I want to stop, I can't interrupt it with a control-D like I do on the the Linux terminal. How do I do this in eclipse. The issue is that, It doesn't write any char to my file. When I cat the file, it's empty, and the past data is gone. Empty. I used this code with g++ on the terminal, and it works.
How do I use this in eclipse?
Console