[問題] 讀檔讀到換行..

看板C_and_CPP作者 (均)時間16年前 (2009/11/08 16:15), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/1
從.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)

11/08 17:07, , 1F
直接%d不行嗎?
11/08 17:07, 1F

11/08 18:04, , 2F
樓上應該不行 因為0和1看來是黏在一起的
11/08 18:04, 2F

11/08 18:05, , 3F
是說你已經讀進到 a[i] 了 那去判斷它是不是 '\n' 就行啦
11/08 18:05, 3F

11/08 18:06, , 4F
然後如果是單個字元的轉數字 -'0' 即可
11/08 18:06, 4F

11/08 18:06, , 5F
這樣用 atoi 可能會有意外事情發生 XD
11/08 18:06, 5F

11/08 18:52, , 6F
窘 感謝樓上的幫忙 真的發生意外了XD
11/08 18:52, 6F

11/08 19:00, , 7F
感謝LP大的幫忙 這問題已經解決了 感謝
11/08 19:00, 7F

11/08 19:03, , 8F
二樓怎麼好像在puz***板看過 XD
11/08 19:03, 8F

11/08 21:07, , 9F
algorithm跟puzzle是一體兩面XD
11/08 21:07, 9F
文章代碼(AID): #1Azduze6 (C_and_CPP)