之前寫過一段**,用strtok來解析一段檔案路徑,給他一層層的分開,
char *tmpstr = "\\dir\\dir1\\dir2\\test.txt";
char buffer[128] = ;
strcpy(buffer,tmpstr);
char *p = null;
p = strtok(buffer,"/\\");
int dirnum = 0;
while(p)
//memset(buffer,0,128);
//strcpy(buffer,tmpstr); //here is the secret
p = null;
p = strtok(buffer,"/\\");
while(p)
這個時候跑下來結果是啥:
000: dir
000: dir1
000: dir2
000: test.txt
001: dir
這就有點兒讓人納悶了,你不是應該是下面這樣嗎?
000: dir
000: dir1
000: dir2
000: test.txt
001: dir
001: dir1
001: dir2
001: test.txt
仔細看看buffer裡面的內容才發現,第一次解析路徑,迴圈呼叫strtok之後,裡面的內容已經變成了下面這樣:
\\dir\000dir1\000dir2\000test.txt
你這不是坑哥麼?
所以第二次迴圈呼叫strtok後,就只剩乙個dir列印出來了,
媽蛋,把那兩行注釋的:
p = strtok(null,"/\\");
} //memset(buffer,0,128);
//strcpy(buffer,tmpstr); //here is the secret
p = null;
p = strtok(buffer,"/\\");
memset(buffer,0,128)和strcpy(buffer,tmpstr)取消注釋就好了,
把buffer裡面內容清空在寫一次,唉,想當初這個bug可是解了好久呀,大半天呢。
關於團隊合作的一點認識
我覺得一些 不知道到底有多少,本人遇到基本都是如此 工作了幾年的開發人員,都很難融入乙個新的團隊。一般剛進新公司首先就是提出自己很多看法,無論你講什麼,都會把自己原來的經歷講一遍,然後告訴你 有問題 比較不喜歡這點 然後就是問什麼用sourcesafe而不用svn,為什麼用vs2008而不用vs20...
android 關於紅外控制一點認識。
前提,android手機支援紅外遙控功能 一 所用到的裝置是 logic analyzer分析儀 有售,他提供紅外解碼的軟體,能清楚的知道某個控制指令的的0 1 邏輯 1 是 0.56ms 1.68ms 邏輯 0 是0.56ms 0.56ms 通過紅外解碼軟體所畫出的圖可以知道,圖在下面。二 美的空...
關於C 引用型別一點認識
引用型別可以和指標一樣指向某個變數,但兩者在使用的時候還是有許多區別,1.宣告乙個引用型別後,一定要給他賦值,否則編譯通不過,特別是在類中,如果有引用成員變數時,一定要在建構函式的初始化列表中初始化,例如 class foo private int var foo f error,沒有初始化引用變數...