導航:首頁 > 文件教程 > c讀取文件到string

c讀取文件到string

發布時間:2024-01-27 13:02:22

① C語言 怎麼用fgets()把一個文件多行內容讀取到一個字元串中

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//返回從filename中讀取第m到n行字元保存到mystring,
//如果打不開文件,失敗返回NULL
//如果不足m行,返回NULL,且mystring為空串
//如果不足n行,返回NULL,mystring為m行之後的所有內容
//如果完成成功,返回mystring,且mystring保存m到n行的字元
char*getfilechar(char*filename,intm,intn,char*mystring){
#defineN2000//假設每行長度不超過2000字元
FILE*fp;
inti;
charstr[N];
*mystring='';
if((fp=fopen(filename,"r"))==NULL){
printf("打開文件%s失敗 ",filename);
returnNULL;
}
for(i=1;i<m;i++)
if(fgets(str,N,fp)==NULL){
printf("文件%s長度不足%d行 ",filename,m);
fclose(fp);
returnNULL;
}

for(i=m;i<=n;i++){
if(fgets(str,N,fp)==NULL){
printf("文件%s長度不足%d行 ",filename,n);
fclose(fp);
returnNULL;
}
strcat(mystring,str);
}
fclose(fp);
returnmystring;
}
intmain(){
charmystring[2000];
getfilechar("d:\temp.txt",20,26,mystring);
if(mystring!=NULL)printf("%s",mystring);
}

② 如何在c語言中使用java傳入的String

如何在c語言中使用java傳入的字元串s,也就是說如何使用jstring類型。那麼在c語言實現中如何使用傳入的字元串s?
我們知道java中的String,c語言中應該對應的是char*類型,也就是說我們在jni的c語言實現中如何把jstring類型轉換成為char*即可。
方法是這樣的:

在c文件中聲明char* str,然後
str= (char*)(*env)->GetStringUTFChars(env, jstring,NULL);
這樣就可以得到傳入的字元串,過程如下:

JNIEXPORT jstring JNICALLJava_Test_sayHello
(JNIEnv * env, jobject obj, jstring s)
{
char * str;
str=(char*)(*env)->GetStringUTFChars(env,s,NULL);
printf("%s",str);
(*env)->ReleaseStringUTFChars(env, s, str);
......
}
當然,java中有垃圾回收機制,二c語言沒有,那麼使用完該字元串之後該如何處理呢?字元串str使用完後,需要通知虛擬機平台相關代碼無需再訪問,方法是
(*env)->ReleaseStringUTFChars(env, jstring, str);

最後還要說一下,如果傳入傳出的字元串是中文,就又有問題了,我們需要手工進行uncode編碼,否則就是亂碼,當然如果程序設計合理,這里一般情況下盡量避免進行漢字的傳遞。
呵呵,就這樣了!

③ C語言提取文件內容保存到字元串數組問題

使用文件操作函數即可。
1、fgets函數:
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:從文件結構體指針stream中讀取數據,每次讀取一行;
說明:讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦值為\0)。如果該行不足bufsize個字元,則讀完該行就結束,如果該行超過bufsize-1個字元,則fgets只返回一個不完整的行,buf緩沖區以\0字元結束,下一次fgets調用會繼續讀取該行剩餘的字元;
頭文件:stdio.h;
返回值:若讀入成功,返回與參數buf相同的字元指針,若讀入過程中遇到EOF或發生錯誤,返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤還是遇到EOF。
2、常式:
#include<stdio.h>
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
return 0;
}
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);//關閉輸出文件,相當於保存
return 0;
}

閱讀全文

與c讀取文件到string相關的資料

熱點內容
win10設置應用許可權管理 瀏覽:47
wordpress製作單頁網站導航頁面 瀏覽:277
什麼海外網站可以看限製片 瀏覽:596
指尖見app在哪裡下載 瀏覽:367
java聊天室課程設計 瀏覽:670
responsejavascript 瀏覽:71
如何從殺毒軟體裡面恢復出文件 瀏覽:972
越獄iphone如何備份 瀏覽:124
蘋果四S萬能鑰匙怎麼破不開 瀏覽:603
網路列印機共享怎麼連接 瀏覽:313
fme系統找不到指定文件 瀏覽:301
iphoneid和密碼忘了怎麼辦 瀏覽:238
蘋果電腦優盤里的文件如何加密 瀏覽:284
word標題名和文件名一致 瀏覽:957
excel修改後的文件保持了怎麼恢復 瀏覽:340
社保網路認證怎麼弄 瀏覽:92
蘋果手機怎麼傳數據到新手機相冊 瀏覽:50
5s升級ios92無服務 瀏覽:354
ubuntu翻譯工具 瀏覽:665
wifi安裝教程 瀏覽:398

友情鏈接