⑴ 用C++ 怎樣判斷文件夾是否為空
c++判斷文本文件為空,必須要先讀一下文件(讀一個字元),才能判斷是否為空。
剛打開文件時,文件狀態標識都是初始化狀態,eof()函數是根據文件狀態標識來判斷當前是否到了文件尾,而不是用來判斷文件是否為空。當讀取文件數據時,遇到文件尾時,系統會更改文件狀態標識為文件尾,同時,返回EOF標志。
參考代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream file;
int ch;
file.open("a.txt",ios::in);
ch=file.get(); //試圖去讀一個字元
if(file.eof()) //或 if ( ch==EOF ) //一個字元都未讀到,表示文件為空
{
cout<<"文件為空"<<endl;
}
file.close();
⑵ 關於判斷文件夾是否為空(c語言)
#include<stdio.h>void main(){ FILE *fp; if ( (fp=fopen("文件名","讀取方式")) == NULL) { printf("wen jian wei kon"); exit(0); }}
⑶ C語言怎麼判斷文件是否為空
文件為空時 只有文件結束符EOF
當讀取第一個字元是EOF時即可判斷文件是不是空
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("1.txt","r"))==NULL)
{
printf("Error!\n");
exit(0);
}
ch=fgetc(fp);
if(ch==EOF)
printf("文件為空\n");
else
printf("文件不為空\n");
}
ch就是獲取到的文件裡面的內容
fgetc(fp)這個函數就是獲取文件內容的函數
從文件頭開始 一直取到文件尾。。每調用這個函數一次 就會取出文件中的下一個字元 一直到文件尾為止
其中你的那個1.txt要放在和你程序相同的文件夾內
⑷ 怎樣判斷c語言文件存在但是否為空啊急!!!
假設文件是data.dat
char c = 0 ;
FILE *fp = fopen ("data.dat", "r") ;
//assert ( fp != NULL) ; 這一句是斷言,可不加
if (fscanf (fp, "%c", &c) == EOF) //讀入一個字元,若文件為空,則一個字元都沒有,第一次讀如就失敗,fscanf返回EOF(-1)
printf ("文件為空") ;
else
printf ("文件不為空") ;
⑸ c# 文件操作 判斷文件是否為空的方法
1.個人認為,判斷文件內容為空可以從兩個角度來考慮,第一種是讀取文件的內容,讀到的內容是否為空字元串;第二種是直接判斷文件的大小。
偽 C# 代碼:
/* 在代碼頭部引入 System.IO 命名空間 */
// 第一種方法
using(FileStream fs=new FileStream(@"C:\a.txt",FileMode.Open){
using(StreamReader sr=new StreamReader(fs){
if(sr.ReadToEnd == string.Empty){
//為空
}
}
}
//第二種方法
FileInfo fi=new FileInfo(@"C:\a.txt");
if(fi.Length==0){
//為空
}
相比之下,第二種方法更為簡單
2. 這種方法適合純文本文件,比如 txt ,ini,html,xml等文件,因為它們不包括任何格式信息。它不適合諸如 doc,xls,zip, rar 等文件,因為即使這些文件是新建的空文件,它們也會包括一些應用程序信息或者格式信息。
區分適合不適合的辦法是,你打開應用程序(如 Word, Excel),新建一個空文件,看它的大小是否為 0 。
希望以上可以幫到你。
⑹ C語言判斷文件為空問題
foef()是判斷文件當前讀寫指針是否在文件末尾,如果文件有內容,讀寫到文件末尾,返回值也是真,但是文件有內容,並不是空的
。你可以讀取文件第一個字元,如果第一個字元是文件末尾,文件就是空。如char
ch;
ch=fgetc(fp);if(ch==EOF)
printf("文件為空\n");