can anyone tell me how can i create a function like:
if ("the txt file is blank")
dosomething;
which is checking if the text file is empty and then do something.
Jump to Postopen the file, seek to end, get position, then finally check if position is 0.
ifstream in("myfile.txt"); in.seekp(0, ios::end); int spot = in.tellg(); if( spot == 0) { cout << "Empty file\n"; }
Jump to PostDamn Ancient Dragon beat me to it.
Anyhow here it is :
#include <iostream> #include<fstream> using namespace std; int main() { fstream oFile("numbers.txt"); if(!oFile.is_open()) { cout<<"Error opening the file\n"; return 3; } oFile.seekg(0,std::ios::end); unsigned int size = oFile.tellg(); if(!size) cout<<"Empty File\n"; else { char c; while(oFile.get(c)) …
open the file, seek to end, get position, then finally check if position is 0.
ifstream in("myfile.txt");
in.seekp(0, ios::end);
int spot = in.tellg();
if( spot == 0)
{
cout << "Empty file\n";
}
Damn Ancient Dragon beat me to it.
Anyhow here it is :
#include <iostream>
#include<fstream>
using namespace std;
int main()
{
fstream oFile("numbers.txt");
if(!oFile.is_open())
{
cout<<"Error opening the file\n";
return 3;
}
oFile.seekg(0,std::ios::end);
unsigned int size = oFile.tellg();
if(!size)
cout<<"Empty File\n";
else
{
char c;
while(oFile.get(c))
cout<<c;
}
}
i think only ofstream can use seekp.
but i need to check that with ifstream.
For ifstream :
ifstream iFile("numbers.txt");
if(!iFile.is_open())
{
cout<<"Error opening the file\n";
return 3;
}
iFile.seekg(0,std::ios::end);
unsigned int size = iFile.tellg();
if(!size)
cout<<"Empty File\n";
for ofstream,look at the prev post.
Another possibility?
#include <iostream>
#include <fstream>
int file_isempty(const char *filename)
{
std::ifstream file(filename);
return !file || file.get() == EOF;
}
int main()
{
const char filename[] = "file.txt";
std::cout << filename << (file_isempty(filename) ? " " : " non") << "empty\n";
}
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.