English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

請問假設檔案裡有某一行
name : Tom
...........
我要用C將Tom存起來
有啥方法比較有效率呢?????

2007-07-05 16:40:19 · 1 個解答 · 發問者 ㄚ修 1 in 電腦與網際網路 程式設計

我的檔案可能是
skhafoahfoa
name:Tom
flajlfjaljfoial
這樣喔
也就是說不是固定讀幾個字元的

2007-07-05 19:23:36 · update #1

請問
strcpy(name,fgets(buffer,_MAX_ENV,f)+5);
不是只是copy字串嗎?
程式並沒有搜尋的功能阿???
我只是要在"Name:"後面的字元喔!!!!

2007-07-07 07:02:43 · update #2

謝謝你的回答^^
可是有可能有其他冒號的存在呢!!!
有沒有哪個函數可以辨別判斷抹一字串後面的字串嗎??

2007-07-08 07:09:34 · update #3

1 個解答

我的做法可能不算是有效率的,只能算是解決字串問題的一種方式。
當檔案內容為:
name:Tom
//Power by Visual Studio 2005
#include
#include
#include
#define _MAX_ENV 32767 //定義緩衝區最大值
int main(int argc, char* argv[]){
//==========START==========//
FILE *f;
char *fn="e:\\123.txt",buffer[_MAX_ENV];
char name[_MAX_ENV];
f=fopen(fn,"r");
if(f!=NULL){
while(!feof(f)){
strcpy(name,fgets(buffer,_MAX_ENV,f)+5);
printf("%s\n",name);
}
fclose(f);
}
//==========END==========//
printf("\n"),system("PAUSE");
return 0;
}


2007-07-06 11:05:38 補充:
假如是存多個個人資料的話,應該會有固定的循環,過了固定幾行又會有相同的讀取方式。

2007-07-07 15:43:13 補充:
也可以改寫成…
fgets(buffer,_MAX_ENV,f);
strcpy(name,(buffer+(int)(strchr(buffer,':')-buffer)+1));

找到冒號後面的字串,把字串複製到 name 陣列內,再顯示出來。

2007-07-08 22:03:55 補充:
char *strtok( char *strToken, const char *strDelimit );

strtok 要利用 while 迴圈逐步取得字串。

不過判斷字串後面的字串,最後還是要自行寫判斷式和利用字串函式,C 語言的函式不像 VB 有多個方便的函式功能。

2007-07-05 17:52:33 · answer #1 · answered by Big_John-tw 7 · 0 0

fedest.com, questions and answers