[問題] 從檔案讀進一連串的整數並偵測換行
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++ 4.9.9.2
問題(Question):
我有一個.txt檔案,檔案內容為:
10101
01001
00011
我想把每列讀到a[5]內,並且從字串轉成int,也就是
a[0] = 1, a[1] = 0, a[2] = 1, a[3] = 0, a[4] = 1
但這在函式內,我希望下一次呼叫此函式可以把第二列讀a[5]內,也就是
a[0] = 0, a[1] = 1, a[2] = 0, a[3] = 0, a[4] = 1,依此類推
但是我不知道如何在下一次呼叫時換行...Orz
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <stdio.h>
#include <stdlib.h>
const char *file = "C:\\test_01.txt";
void read(int *a);
int main(void)
{
int a[5];
int i;
for(i=0;i<2;i++)
{
read(a);
putchar('\n'); //結果兩次都是10101
}
system("pause");
return 0;
}
void read(int *a)
{
int i;
FILE *fptr;
fptr = fopen(file,"r"); //每次呼叫都要開檔一次,有辦法開一次就好了嗎?
if(fptr!=NULL)
{
char temp[2] = {0};
for(i=0;i<5;i++)
{
fscanf(fptr,"%c",temp);
a[i] = atoi(temp);
printf("a[%d]=%d\t",i,a[i]);
}
}
else
printf("read file error!");
}
謝謝各位前輩指點 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.214.89
→
07/27 14:01, , 1F
07/27 14:01, 1F
→
07/27 14:06, , 2F
07/27 14:06, 2F
→
07/27 14:08, , 3F
07/27 14:08, 3F
→
07/27 14:42, , 4F
07/27 14:42, 4F
→
07/27 14:46, , 5F
07/27 14:46, 5F
→
07/27 15:05, , 6F
07/27 15:05, 6F
→
07/27 15:48, , 7F
07/27 15:48, 7F
→
07/27 15:51, , 8F
07/27 15:51, 8F
→
07/27 15:53, , 9F
07/27 15:53, 9F
→
07/27 15:55, , 10F
07/27 15:55, 10F
→
07/27 15:55, , 11F
07/27 15:55, 11F
→
07/27 15:59, , 12F
07/27 15:59, 12F
→
07/27 16:01, , 13F
07/27 16:01, 13F
→
07/27 16:01, , 14F
07/27 16:01, 14F
→
07/27 16:07, , 15F
07/27 16:07, 15F
→
07/27 16:23, , 16F
07/27 16:23, 16F
真對不起,我改了一點小地方,用"\0"就可以了,但我不知道為什麼
fscanf(fptr," %c",temp); //%c前面有"空白"
a[i] = atoi(temp);
這樣下面這五個都可以達到換行的作用
什麼都不打
fscanf(fptr,"%c",temp); //讀入.txt的 \n
fscanf(fptr,"\n",temp);
fscanf(fptr,"\0",temp);
fscanf(fptr,"\0\n",temp);
但如果
fscanf(fptr,"%c",temp); //%c前面沒有空白
a[i] = atoi(temp);
則
fscanf(fptr,"%c",temp); //讀入.txt的 \n
fscanf(fptr,"\n",temp); //正確
fscanf(fptr,"\0",temp); //讀取錯誤!
fscanf(fptr,"\0\n",temp); //讀取錯誤!
※ 編輯: andy2007 來自: 140.114.214.89 (07/27 16:31)
→
07/27 16:31, , 17F
07/27 16:31, 17F
※ 編輯: andy2007 來自: 140.114.214.89 (07/27 16:45)
→
07/27 16:50, , 18F
07/27 16:50, 18F
→
07/27 16:52, , 19F
07/27 16:52, 19F
→
07/27 16:52, , 20F
07/27 16:52, 20F
→
07/27 16:54, , 21F
07/27 16:54, 21F
→
07/27 16:54, , 22F
07/27 16:54, 22F
※ 編輯: andy2007 來自: 140.114.214.89 (07/29 16:14)
→
07/30 14:59, , 23F
07/30 14:59, 23F
→
07/30 15:54, , 24F
07/30 15:54, 24F
→
07/30 15:55, , 25F
07/30 15:55, 25F
→
07/30 16:09, , 26F
07/30 16:09, 26F
→
07/30 19:11, , 27F
07/30 19:11, 27F
→
07/30 19:11, , 28F
07/30 19:11, 28F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章