看板 C_and_CPP 關於我們 聯絡資訊
從.txt檔裡面讀迷宮的0和1 /* 讀檔 */ void Read(int m[]) { FILE *file; int i; char a[300]; file=fopen("maze.txt","r"); for(i=0;fscanf(file,"%c",&a[i])!=EOF;i++) { m[i]=atoi(&a[i]); //字元轉數字 } fclose(file); } a[300]是用來讀.txt裡的0和1,放的是字元 我想把a[300]裡的字元"0"和"1"轉成數字的0和1放在m[]裡 不過因為.txt裡本來就是一個矩陣(正方形矩陣)的圖案,所以會讀到"\n"的字元 想問的是,有無方法剔除掉,在讀檔的時候讀到的"\n", 然後把剔除完"\n"的陣列再轉成m[i](數字的) ? 上網有查到使用strtok指令可以剃除字串裡的想要剔除字元 但不清楚怎麼使用 也想問一下 如果char[300]每10個"0"或"1"字元讀取完後會讀到"\n"的時候 若用strtok這個指令剔除\n的話, 那樣剔除後,會留下一個原本放"\n"的空間嗎? 還是會由下一個字元來補它的空間? 謝謝幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.67.73 ※ 編輯: jim771212 來自: 114.47.67.73 (11/08 16:21)
joefaq:直接%d不行嗎? 11/08 17:07
LPH66:樓上應該不行 因為0和1看來是黏在一起的 11/08 18:04
LPH66:是說你已經讀進到 a[i] 了 那去判斷它是不是 '\n' 就行啦 11/08 18:05
LPH66:然後如果是單個字元的轉數字 -'0' 即可 11/08 18:06
LPH66:這樣用 atoi 可能會有意外事情發生 XD 11/08 18:06
jim771212:窘 感謝樓上的幫忙 真的發生意外了XD 11/08 18:52
jim771212:感謝LP大的幫忙 這問題已經解決了 感謝 11/08 19:00
tw00088437:二樓怎麼好像在puz***板看過 XD 11/08 19:03
buganini:algorithm跟puzzle是一體兩面XD 11/08 21:07