作者jim771212 (均)
看板C_and_CPP
標題[問題] 讀檔讀到換行..
時間Sun Nov 8 16:15:49 2009
從.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