[爆卦]Fgets 意思是什麼?優點缺點精華區懶人包

為什麼這篇Fgets 意思鄉民發文收入到精華區:因為在Fgets 意思這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者ny8656 (來不及了)看板C_and_CPP標題[問題] C fgets() 與陣列時間We...


用fgets 一行一行讀取檔案(檔案內是100行亂數)

想將讀取到的每行數字,再放入另一個陣列A[]

但是跑出來的結果都怪怪的...

直接printf(str)可以正確看到已經讀取的所有數字

但就是不知道要怎麼放進陣列...

int main()
{
int i = 0;
char A[99];
char str[128];
FILE *fp;
fp = fopen("mlist.txt","r");
while(fgets(str,4,fp) != NULL)
{
printf(str);
i++;
}
fclose(fp);
}

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.128.194.57
james732:「放進陣列」的意思是? 09/29 10:48
ny8656:將str裡的內容放進自己另外宣告的新陣列A裡頭 09/29 10:49
james732:那你的A必須宣告成二維,譬如 char A[99][128]; 09/29 10:50
james732:等等,還是你需要的其實只是 strcpy(A, str); 而已? 09/29 10:50
※ 編輯: ny8656 來自: 140.128.194.57 (09/29 10:50)
james732:如果你是說 A[0] 第一個數字,A[1]第二個數字...的話 09/29 10:53
james732:那你的A就必須是 char A[100][128]; 之類的二維 09/29 10:53
james732:在 while 裡加個 strcpy(A[i], str); 就可以了 09/29 10:54
ny8656:恩,我想要的就是你指的A[n]是第n個數字 09/29 10:58
james732:可以試試: http://nopaste.csie.org/c9744 09/29 11:07
ny8656:是我想要的結果!但是想再問一下,為什麼會用到二維陣列? 09/29 11:14
james732:先想想:為什麼你的 str[128] 必須是一維陣列呢? 09/29 11:17
stupid0319:fgets(A,99,fp); <這樣可以嗎 09/29 11:22
ledia:說個可能比較無關的, 如果檔案裡有 %s 之類的, 丟進 printf 09/29 11:23
ledia:直接印也不太妥當 09/29 11:23
james732:沒有想到樓上的問題耶 XD 那要怎麼避開這個問題? 09/29 11:26
ny8656:瞭解了...thx 09/29 11:29
stupid0319:sturct myStr { char str[128]} A[99]; 09/29 11:47
ledia:fputs ? 09/29 12:22
james732:都忘了有fputs,還想說掃整個字串檢查有沒有%s...XDD 09/29 12:23
loveme00835:fputs 正解! 不過這樣就得每個數字各自一行了, printf 09/29 12:26
loveme00835:給格式字串 "%s" 也可 09/29 12:26
ledia:printf %s 感覺就有點繞路, 因為要印的不是 formatted str 09/29 14:33
ledia:話雖如此我還是很長這樣用就是了 orz 09/29 14:33

你可能也想看看

搜尋相關網站