Why is my txt file failing to open in C++? - c++

I'm trying to open a .txt file that contains integer values 0-9 each individual number on its own line till the last number is 9. When i run the code i'm using im running into an issue with opening my txt file. Based on the if and else statement provided its failing to open what is causing this and what method can i use to open my notepad .txt file.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream infile; //Container for the file
infile.open("assignmentG1.txt"); //Name of the file you want to open
string stringFromFile; //string variables to store extracted strings
if(infile.fail()) {//Display error if the file failed to open
cout<<"Input file failed to open";
}
else
{
getline(infile, stringFromFile);
}
cout<<stringFromFile;
}
input file failed to open.

The code works as expected, just make sure you execute the compiled program from the directory where the text file exists.
Assuming the source code is added to a file named main.cpp and running on Linux or macOS with gcc compiler installed, the following works:
echo "Hello" > assignmentG1.txt
g++ main.cpp -o main
./main
Hello

Your file should be at correct path if your project name is suppose project_name so keep the file at /project_name/project_name/assignmentG1.txt .
Assuming you are using visual studio.

Related

mingw64 + sublime 3 input output files not working

I am trying to set up an environment for competitive programming. I have successfully installed mingw 64 with sublime 3. My code is able print hello world in the console. However, I am unable to read inputs and output into the input and output files. I am following the instructions here and this is the c++ code that I am trying to run.
#include<iostream>
using namespace std;
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
cout << "Hello world";
int var;
cin >> var;
cout << var;
}
I have the integer 5 in my input.txt file. When I build with c++ single file and run, nothing happens and the console just says [Finished in 5.6s]. I hoping that the code will read inputs that I place in the input.txt file and output them to the output.txt file. When I remove the 2 freopen code, Hello world is printed onto my console. May I know what am I doing wrong here? Thank you!
I had a similar problem and it turns out windows defender was blocking edit to output.txt file (A new feature has been added in windows defender called Controlled folder access). Check if your directory is not included in that feature. Are you using the default build system for c++ in Sublime? Check paths are correct

"Unrecognized file" when I try to open it C++

I'm using Netbeans 8.2 and I am programming with C++.
I'm trying to read a file. I have put it in the correct project folder of sources and I have used #include <fstream> .
ifstream myfile ("figures.txt");
code...
myfile.close();
I have the file in the correct place. But this message pops up:
Unrecognized file
Then, my other part of code also gives me error, because never detects the file I'm talking about open.
if (myfile.is_open()){
code...
}else{
cout << "file not open" << endl;
}
Auto solved, the .txt must be in the project folder, not in nbproject folder. At least it has worked doing it this way. Any more reccomendations will be accepted!

vs2008,vs2015 cannot read files: weird behaviour

I'm having a very weird behaviour in Windows 10 enviroment using both VS2008 and VS2015 when I try to read a file using ifstream.
I'm using the following simple code:
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
int main()
{
std::ifstream ifs("C:\\Users\\dd\\Desktop\\test.txt");
if(ifs.is_open())
{
std::string line;
while(std::getline(ifs,line))
{
std::cout << line << "\n";
}
}
else
{
std::cout << std::strerror(errno) << "\n";
}
return 0;
}
Obviously the file exists.
When I try to read the file .txt I get:
Permission denied
I run Visual Studio as Administrator and I have the permission to read the file because I am able to open it using Notepad++.
If I change the file extension, for instance .test, I am able to read the file content correctly and everything works as expected.
I uninstalled and then reinstalled VS2008, VS2015 and all C++ Redistributable, but nothing changed. Any help is greatly appreciated!
Perhaps your file isn't named test.txt. Did you check that your file is really named test.txt and not test.txt.txt (with a hidden extension)?
Try to list files in command prompt to see what the real file name is:
cmd>
cd C:\Users\dd\Desktop\
dir | findstr test
Onother possibilities:
test.txt could possibly use similarly looking letters from another
language (in your code or in actual file name).
not properly quoted slashes in your code (e.g. C:\Users\\ instead of C:\\Users\\dd\\). Try to change to forward slashes.

I can't read a .dat file using fstream

I know there are a ton of questions pertaining to this subject but I cannot get this to work. The program ran fine on my laptop, but when I try to compile and run it in the the schools Linux lab the program cannot open the file. I have tried defining the absolute file position but nothing has worked. The file name is correct and everything but when I try to run the program it displays "failed". I'm using gedit and compiled the program with bash.
ifstream fin("rainfall.dat"); // If the file cannot open display failed
if(fin.fail()){
cout << "failed" << endl;
return 1;
}
try
#include <errno.h>
if(fin.fail())
perror("open failed ");
this will give you a human readable message for the last error

C++ Project Won't Write to file After Export From xCode

I am having a strange issue. I have a function (writedata) that take a string and writes it to a file. Is works fine and files are created when I build and run the program within xCode.
When I export the compiled project from xCode and just try to run the executable terminal app no file is ever written. I can see the process completes in terminal with no errors given. I even get the 'cout<<"Done. File Written!"' message but no file.
void writedata(string writedata, string filename){
ofstream data(filename, ios::app);
if (data.is_open())
{
data<<writedata;
cout<<"Done. File Written!";
data.close();
}
else cout << "Unable to open file";
data.close();
}
Does anyone know why this is happening?