❶ c語言中如何正確讀取dat文件中的數據
也不是程序問題,是你對他文件的編碼問題。
再轉換成一個標準的編碼就可以了。
或者用我們的記事本編輯,給他制定一個默認的編碼?
還有你在這個cmd的模式下,它也是有一個默認編碼的也可以設。
❷ c語言生成dat文件
1、首先打開vs軟體,選擇新建一個項目。
❸ c語言如何讀取dat文件
dat文件和普通txt文件相同,都是文本格式,使用普通文本操作函數讀取即可。
1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。
2、常式:
#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.dat","r");//打開dat格式的輸入文件
FILE*fp2=fopen("output.txt","w");//打開輸出文件
if(fp1==NULL||fp2==NULL){//若打開文件失敗則退出
puts("不能打開文件!");
rturn0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串
printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數
fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return0;
}
❹ C語言讀取dat
#include<stdio.h> //這里假設文件是文本格式的
void main() { int i; char fnm[20],pf[30][256]; FILE *fp;
for ( i=0;i<30;i++ ) {
sprintf(fnm,"test%d.dat",i+2);
if ( fp=fopen(fnm,"r") ) {
fscanf(fp,"%s",pf[i]); printf("%s ",pf[i]);
fclose(fp);
}
}
}
❺ 怎樣用c語言讀取這個dat文件有圖
只能以
2進制
方式讀取,應該是這樣的,不過你還要看一下這個
DAT文件
的原型是什麼演變而來的。否則單憑這些你不會知道他有什麼用處
❻ 請問大家有沒有做過在C語言中生成dat文件並導入到CCS中進行處理的。
附件是將bmp文件轉成CCS可識別的DAT格式的文件,使用VC6開發。
對於DSP處理PC上存放的照片,我的做法是,將圖片中的數據做成數組,然後在CCS下包含這個數組,寫演算法對這個數據做所需要的處理,處理後可以得到一個處理後的數組。然後把這個數據用fprintf或fwrite語句輸出到PC下的某個文件中,最後在寫PC演算法來讀取這個文件並顯示出裡面的內容。
但我並不建議這么做,這么做就失去了DSP的存在的意義,dsp作為一個獨立的系統,一個正確的DSP系統開發,應該是實時的獲取圖像數據,然後處理,最後將處理後圖像顯示到屏上,以此驗證演算法的正確性。當然對於前期的處理演算法開發,你可以完全現在PC下使用MATLABVS2008opencv等之類的來做演算法驗證,演算法可行在移植到DSP上。
❼ c語言如何實現打開dat文件並保存修改數據
在後台倒是情況下,輸入狀態語言就行
❽ 我用c語言的程序,需要一個.dat文件來生成圖片,請問一下,我該怎麼做
C語言標准對整型常量的類型有這樣的描述:如果沒有後綴且是十進制形式的,那麼它的類型根據其值的大小可能為int、long、unsigned long;如果為沒有後綴且是八進制或十六進制的,根據值的大小可能為int、unsigned int、long、unsigned long。
我想問,對於十進制形式的整型常量的類型為什麼不經過unsigned int,直接從int跳到long;按理說它應該像八進制與十六進制一樣,從小到大逐一遍歷選取。
注意:這里說的類型是指原來的類型,不是指在表達式中轉換提升後的類型。
這個問題可以算勉強解決了:為什麼十進制形式不遍歷unsigned int,它的類型遍歷是從int、long再到unsigned long;在此總結多日來查閱參考得出的可能最主要的原因:(減少在移植時出問題)
首先,當無符號類型與長度相同的有符號類型一起運算時,其結果類型對C語言來說是無法預料的,也就是說結果的類型將有具體的實現;為什麼呢?是這樣的:
C語言規定:較長類型的整數至少要佔有較短類型整數一樣的空間,但它們可以佔有一樣大小的空間,這取決於具體的實現。
因此當無符號類型與有符號類型運算時,比如,unsigned int與long int,當它們被規定為長度相同,那麼結果是什麼類型,僅從語法上來說,不能確定結果的類型,因為不知道一個unsigned int的數long int能不能裝的下,如果裝的下則在類型轉換時將unsigned int轉換成long int,結果類型為long int,裝不下則將long int、unsigned int轉換unsigned long int,結果類型為unsigned long int,所以在考慮到移植性時,應盡可能的用有符號類型int、long,這樣不管在哪種環境下,實現在語言中就可以確定其類型,而且無符號類型的表數范圍大於有符號類型,在運算中一般要將有符號類型轉換成無符號類型,而這種轉換要比反向轉換復雜的多,佔用更多的計算時間,顯然選用unsigned int的弊大於不用unsigned int,不選用unsigned int的利大於選用unsigned int。
語言設計者,在考慮到C程序的空間利用率、時間效率、移植性,作出一個好的折中(在設計領域有句話:一個好的設計取決於一個好的折中):
在盡量減少空間浪費的情況下,提高程序的運行效率和通用性。而這兩點對於任何程序來說都是衡量的最主要標准。而空間可以在物理上擴大,這是必然趨勢,效率與通用性則只能在程序中提高,雖然也可以提供更快的處理器,但這顯然是種魯莽的想法。
對了,最後的unsigned long是在不得已的情況下選取的,因為在C99以前沒有提供比它更大的整數類型。