การใช้ fgets() และ strtok() เพื่ออ่านไฟล์แบบ CSV เข้ามาทีละบรรทัด แล้วเก็บข้อมูลแต่ละตัวไว้ใน struct ที่ออกแบบสำหรับเก็บแต่ละคอลัมน์ที่อยู่ในแถว
=== ดาวน์โหลดไฟล์ตัวอย่างได้ที่ https://goo.gl/fGrrAx
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
playlist สอนภาษา C เบื้องต้น ► https://www.youtube.com/watch?v=Z_u8Nh_Zlqc&list=PLoTScYm9O0GHHgz0S1tSyIl7vkG0y105z
playlist สอนภาษา C++ เบื้องต้น ► https://www.youtube.com/watch?v=_NHyJBIxc40&list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i
playlist สอนภาษา C# เบื้องต้น ► https://www.youtube.com/watch?v=hhl49jwOIZI&list=PLoTScYm9O0GE4trr-XPozJRwaY7V9hx8K
playlist สอนภาษาจาวา Java เบื้องต้น ► https://www.youtube.com/watch?v=O3rW9JvADfU&list=PLoTScYm9O0GF26yW0zVc2rzjkygafsILN
playlist สอนการทำ Unit Test ภาษาจาวา Java ► https://www.youtube.com/watch?v=R11yg8hKApU&list=PLoTScYm9O0GHiK3KNdH_PrNB0G3-kb1Bi
playlist สอนภาษาไพธอน Python เบื้องต้น ► https://www.youtube.com/watch?v=DI7eca5Kzdc&list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
playlist สอนภาษาไพธอน Python การเขียนโปรแกรมเชิงวัตถุ (OOP: Object-Oriented Programming) ► https://www.youtube.com/watch?v=4bVBSluxJNI&list=PLoTScYm9O0GF_wbU-7layLaSuHjzhIRc9
playlist สอนภาษา R เบื้องต้น ► https://www.youtube.com/watch?v=oy4qViQLXsI&list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp
playlist สอนภาษา PHP เบื้องต้น ► https://www.youtube.com/watch?v=zlRDiXjYVo4&list=PLoTScYm9O0GH_6LARFxozL_viEsXV2wgO
「strtok」的推薦目錄:
- 關於strtok 在 prasertcbs Youtube 的精選貼文
- 關於strtok 在 prasertcbs Youtube 的最佳貼文
- 關於strtok 在 [問題] strtok跟遞迴- 看板C_and_CPP - 批踢踢實業坊 的評價
- 關於strtok 在 C/C++ strtok 用法與範例 的評價
- 關於strtok 在 newlib/strtok.c at master - GitHub 的評價
- 關於strtok 在 Tokenisation strtok() strtok r() 和strtok s() | 他山教程 的評價
- 關於strtok 在 Issue with the strtok function in C: it only returns one token 的評價
strtok 在 prasertcbs Youtube 的最佳貼文
การดึงส่วนต่าง ๆ ของสตริงตามตัวคั่น เช่น "Peter,M,28" (ข้อมูลแต่ละส่วนถูกคั่นด้วย comma)
=== ดาวน์โหลดไฟล์ตัวอย่างได้ที่ https://goo.gl/QmpAH7
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
playlist สอนภาษา C เบื้องต้น ► https://www.youtube.com/watch?v=Z_u8Nh_Zlqc&list=PLoTScYm9O0GHHgz0S1tSyIl7vkG0y105z
playlist สอนภาษา C++ เบื้องต้น ► https://www.youtube.com/watch?v=_NHyJBIxc40&list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i
playlist สอนภาษา C# เบื้องต้น ► https://www.youtube.com/watch?v=hhl49jwOIZI&list=PLoTScYm9O0GE4trr-XPozJRwaY7V9hx8K
playlist สอนภาษาจาวา Java เบื้องต้น ► https://www.youtube.com/watch?v=O3rW9JvADfU&list=PLoTScYm9O0GF26yW0zVc2rzjkygafsILN
playlist สอนการทำ Unit Test ภาษาจาวา Java ► https://www.youtube.com/watch?v=R11yg8hKApU&list=PLoTScYm9O0GHiK3KNdH_PrNB0G3-kb1Bi
playlist สอนภาษาไพธอน Python เบื้องต้น ► https://www.youtube.com/watch?v=DI7eca5Kzdc&list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
playlist สอนภาษาไพธอน Python การเขียนโปรแกรมเชิงวัตถุ (OOP: Object-Oriented Programming) ► https://www.youtube.com/watch?v=4bVBSluxJNI&list=PLoTScYm9O0GF_wbU-7layLaSuHjzhIRc9
playlist สอนภาษา R เบื้องต้น ► https://www.youtube.com/watch?v=oy4qViQLXsI&list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp
playlist สอนภาษา PHP เบื้องต้น ► https://www.youtube.com/watch?v=zlRDiXjYVo4&list=PLoTScYm9O0GH_6LARFxozL_viEsXV2wgO
strtok 在 C/C++ strtok 用法與範例 的推薦與評價
本篇ShengYu 介紹C/C++ strtok 用法與範例,strtok 是用來作字串分割的函式,以下介紹如何使用strtok 函式。 C/C++ 要字串分割可以使用strtok 來完成 ... ... <看更多>
strtok 在 newlib/strtok.c at master - GitHub 的推薦與評價
FUNCTION. <<strtok>>, <<strtok_r>>, <<strsep>>---get next token from a string. INDEX. strtok. INDEX. strtok_r. INDEX. strsep. ANSI_SYNOPSIS. ... <看更多>
strtok 在 [問題] strtok跟遞迴- 看板C_and_CPP - 批踢踢實業坊 的推薦與評價
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
NO
問題(Question):
只要跑到第三層遞迴,就會當掉。
這是NFA to DFA的程式作業。
餵入的資料(Input):
NFAtable 左上(3,0)是NFAtable[1][1]
(3,0)(4,0)(0,0)
(0,0)(3,1)(2,0)
(2,0)(0,0)(4,0)
(3,*)(4,*)(*,*)
預期的正確結果(Expected Output):
DFAtable[state][input] 裡面應該要有 1,3,2
錯誤結果(Wrong Output):
trace temp裡面會變成 錯誤的Ptr
程式碼(Code):(請善用置底文網頁, 記得排版)
int cutString(char *str, int state, int input)
{
char *delim = ",";
char *temp;
temp = strtok(str, delim);
while(temp != NULL)
{
if(strcmp(temp, "0") == 0)
{
return 0;
}
DFAtable[state][input] += ',';
DFAtable[state][input] += temp;
char* pch = new char[3];
strcpy(pch, NFAtable[atoi(temp)][input].c_str());
cutString(pch, state, input);
temp = strtok(NULL, delim);
if(strcmp(temp, "0") == 0)
{
return 0;
}
pch = "";
strcpy(pch, NFAtable[atoi(temp)][input].c_str());
cutString(pch, state, input);
}
}
補充說明(Supplement):
NFAtable跟DFAtable都是string 二維陣列,
遞迴第一次的資料是3,0 1 1 (*str, state, input)
所以第一次temp是3,呼叫cutString資料是2,0 1 1
第二次temp是2,呼叫cutString資料是0,0 1 1
第三次temp是0,所以return 0
這時候會回到第二次,2後面是0,所以再return 0
這時候再回到上一層,3後面是0,但這時候temp裡面會顯示 錯誤Ptr
我有用另一份資料試過,如果只有兩層,就不會有這個問題,
請問是因為我呼叫太多次,導致strtok會有問題嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.34.54.4
※ 編輯: kent800909 來自: 1.34.54.4 (04/02 00:47)
... <看更多>