// แก้ชื่อจู๋นะครับ
คือผมใช้ Dev-c++ อยู่ แต่รู้สึกว่ามีปัญหาหลายอย่าง
ใช้คำสั่ง clrscr ก็ไม่ได้ คำสั่งบางอันก็ใช้งานไม่ได้ เช่น
#include <stdio.h>
#include <conio.h>
void printx (int,char);
main()
{
int num;
char cha;
printf ("Input side :");
scanf ("%d",&num);
printf ("Input character :");
scanf ("%c",&cha);
printx (num,cha);
getch();
return 0 ;
}
void printx(int num,char cha)
{
int i,j;
for (i=1;i<=num;i++)
{
for (j=1;j<=num;j++)
{
printf ("%c",cha);
}
printf ("\n");
}
}
ถ้ารันใน DEV-C++ แล้วมันจะรับค่าแค่ Input side : แล้วเดี้ยงไปเลย
กลับกัน ถ้าสลับที่โค้ด เอา Input character : ขึ้นมารับค่าก่อน จะรันได้ :08:
ป.ล. ไม่เอาหน้่าตาแบบดอสเหมือน turbo C นะครับ ตัวอื่นที่ไม่ใช่ VC++ ด้วยครับ ใครพอจะมีมั่งครับ :46:
ถ้าแค่เอามาเขียนอย่างเดียว notepad++, editplus ก็โอนะครับ
ตอนนี้ลองใช้ c-free อยู่ครับแต่ ใช้บางคำสั่งอย่าง clrscr ไม่ได้เหมือนกัน อย่างอื่นไมไ่่ด้ลอง
แต่ปกติดใช้ turbo c ก็สวยดีนะได้ฟีลดีออก :56:
อ้างคำพูดจาก: ^-FakE-^ เมื่อ 09 ส.ค. 2008, 17:05 น.
ถ้าแค่เอามาเขียนอย่างเดียว notepad++, editplus ก็โอนะครับ
อ๋อ อยากได้ที่มันคอมไพล์ได้ด้วยครับ
Eclipse ไปเลย ถ้าแรมเยอะๆ
เขียนบนโน๊ตบุ๊คอ่ะครับ
CPU : core2duo t7500 2.0 GHz
RAM : 2048 MB
ไม่แน่ใจว่าไหวมั๊ย
ว่าแต่ฟรีหรือเปล่า โหลดที่ไหนครับ
ขอบคุณครับ
ใช้ Borland C++ 3.1 For Windows ครับ :53:
แต่ถ้าอยากจะเขียนบน Dos มันก็มีตัว Dos ไว้ให้ด้วยครับ
(เพราะคำสั่งบางตัว เช่น Delay(); มันใช้กับตัวบน windows ไม่ได้) :53:
Eclipse เป็น Open Source IDE ครับ ดังนั้นฟรีแน่นอน
โดยพื้นฐานแล้วถูกพัฒนาโดยใช้ Java เวลาใช้งานจึงต้องมีการติดตั้ง Java
ซึ่งอาจจะเป็น JRE หรือ JDK ก่อนนะครับ ไม่งั้นจะไม่สามารถรันได้
โดยทั่วไปแล้ว Eclipse มักจะถูกนำไปใช้งานในการพัฒนา java application ซะมากกว่า
แต่ด้วยจุดเด่นที่สามารถติดตั้ง plugin เพิ่มได้ ก็เลยมี Eclipse C/C++ ออกมาให้ใช้งานกันครับ
ดาวน์โหลดได้ที่ http://www.eclipse.org/downloads/ เลือกตรงที่เป็น Eclipse IDE for C/C++ Developers (68 MB)
โหลดมาแล้ว Extract ออกก็สามารถใช้งานได้เลยครับ
โอ้วๆ ขอบคุณทุกคนมากครับ เดี๋ยวจะลองดู ไล่โหลดอยู่ ขอบคุณครับ :46:
อ้างคำพูดจาก: แบงก์ [19] เมื่อ 09 ส.ค. 2008, 19:03 น.
ใช้ Borland C++ 3.1 For Windows ครับ :53:
แต่ถ้าอยากจะเขียนบน Dos มันก็มีตัว Dos ไว้ให้ด้วยครับ
(เพราะคำสั่งบางตัว เช่น Delay(); มันใช้กับตัวบน windows ไม่ได้) :53:
ยังงงๆอยู่ครับ เพิ่งเรียนได้สองเดือน
ถ้าเขียนบนวินโดวส์นี่มันจะเป็นแบบ vc++ ใช่มั๊ยครับ
คือผมเรียน DEV-C++ ครับ น่าจะบนดอสเพราะเวลารันมันขึ้นหน้าต่างเหมือนดอส
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 09 ส.ค. 2008, 17:01 น.
คือผมใช้ Dev-c++ อยู่ แต่รู้สึกว่ามีปัญหาหลายอย่าง
ใช้คำสั่ง clrscr ก็ไม่ได้ คำสั่งบางอันก็ใช้งานไม่ได้ เช่น
คำสั่งจะไม่เกี่ยวกับเครื่องมือพัฒนา(เป็นส่วนของ compiler) แต่ IDE หลายอันมี compiler ในตัว
dev c++ เป็นเครื่องมือสำหรับการพัฒนา C/C++ Mingw compiler (http://www.bloodshed.net/devcpp.html)
ส่วน clrscr เป็นคำสั่งของค่าย borland จึงมีปัญหาหลายๆอย่างเพราะเราอยากได้คุณสมบัติของอีกค่ายแต่ใช้เครื่องมืออีกค่าย
สำหรับการใช้ clrscr ใน dev-c++ ลองอ่าน FAQ (http://www.bloodshed.net/faq.html#12) ครับ หรือ ที่นี่ก็ได้ (http://aditsu.freeunixhost.com/dev-cpp-faq.html#conio)
โอ้ มิน่าล่ะ ขอบคุณครับ
แต่วิธีแก้นี่ผมงงๆครับ
สรุป ไม่มีคำสั่งมาตรฐานที่ทำงานได้แทนคำสั่งนี้เลยเหรอครับ
(http://img2.f0nt.com/09/730648aca65d93544618651ac557e953.png)
(http://img2.f0nt.com/09/92a444797c6e63b0d28c86b93598beb4.png)
แบบนี้น่ะเอิร์ธ พอลงเสร็จ มันจะมีให้ทั้งตัวที่รันบน windows และตัวที่รันบน Dos เลย
ฟด:/Reroyd/Application . :56:
:25: ขอบคุณครับ กำลังจะทักเพราะทอเรนท์มันไม่มีคนปล่อย :54:
เปลี่ยนชื่อจู๋ดีกว่า เดี๋ยวผมมีอะไรจะถามเกี่ยวกับภาษาซีอีกเยอะ :30:
เบิล :02:
ขอถามครับ
return 0; คืออะไรครับ
ถามอาจารย์เค้าบอกว่า มันต้องมีทุกครั้งที่จบโปรแกรม ความหมายแค่เตือนให้มันรู้ว่าจบโปรแกรมแล้วแค่นั้น :09:
แต่ผมว่าไม่น่าใช่ เพราะไม่ใส่ผมก็รันได้ :08:
แล้วต่างกับ return(); ยังไงครับ ทำไมอันบนไม่ต้องมี ()
(คือไม่รู้เลยว่านี่มันคือคำสั่งอะไร ใช้ยังไง เมื่อไหร่ครับ)
อีกอันครับ
main () { }
void main (){ }
int main () { }
มันต่างกันยังไง (ปกติใช้ main เฉยๆ แต่หนังสือ my first book ANSI C ใช้ int main อาจารย์บางครั้งก็ใช้ void main)
เอาแบบงู ๆ ปลา ๆ ละกันนะ เริ่มเลือนลาง :52:
main เป็นฟังก์ชันหลัก โปรแกรมจะรันที่ main นี้ก่อนฟังก์ชันอื่น
เรื่องการใช้ return มันมาจากชนิดของฟังก์ชันนั้น ๆ
int main()
หมายถึง ฟังก์ชัน main มีชนิดเป็น integer ฉะนั้น ต้อง return ค่า integer ให้มัน (ไม่จำเป็นต้องเป็น 0)
นั่นแปลว่า ถ้าเราเกิดใช้ char main() เราก็ต้อง return ค่าที่เป็น char (ไม่เกิน 65535 มั้ง) ให้มัน
#include "stdio.h"
char main(){
printf("hi");
return 'a';
}
void หมายถึงไม่มีค่า
void main() จึงเป็นฟังก์ชันที่ไม่มีการ return ค่า (จึงไม่มีการ return ค่าเมื่อจบโปรแกรม)
#include "stdio.h"
void main(){
printf("Hi");
}
ส่วนเรื่องที่ถ้าตั้ง int main() แล้วไม่ return ก็สามารถรันได้ มันรันได้ครับแต่ถ้าสังเกตดี ๆ มันจะมี warning ว่า function should return a value (หรืออะไรเทือกนี่ล่ะ)
แล้วถ้าเราเขียนโปรแกรมที่ต้องใช้ค่าที่ return มาคำนวณด้วย ผลลัพธ์ก็จะผิดทันที
งงหรือเปล่าไม่รู้ เอางู ๆ ปลา ๆ ไปก่อน ยังไงเดี๋ยวให้ลุงซันหรือพี่ต้นมาอธิบายดีกว่า :53:
:30: งงครับ
เราประกาศ int ให้กับตัวแปรไหน
และคืนค่าให้ตัวแปรไหนครับ
แล้วถ้่าสมมติเราใช้
int main(){
float a,b,c ;
a = 10 ;
b = 3 ;
c = a/b ;
return 0 ;
}
ได้มั๊ยครับ (ฟังก์ชั่น main เป็น int แต่ตัวแปรเป็น float )
แล้วจบโปรแกรมปุ๊ป a,b,c จะเก็บค่าเป็น 0 หมดหรือเปล่าครับ (return 0)
คืนให้ main() ครับ
ถ้้ามีหนังสือ ลองเปิดดูเรื่อง Function ครับ :53:
เดี๋ยวหาตัวอย่างง่าย ๆ ก่อน :42:
int main(){
float a,b,c ;
a = 10 ;
b = 3 ;
c = a/b ;
return 0 ;
}
ได้มั๊ยครับ (ฟังก์ชั่น main เป็น int แต่ตัวแปรเป็น float )
int ตัวนี้เป็น prototype ของ ฟังก์ชั่นครับ ไม่เกี่ยวกับ ตัวแปร
นั่นหมายความว่า
ตัวแปรในฟังก์ชั่นจะมี data type เป็นอะไรก็ได้
แต่ return ต้อง เป็นชนิดเดียวกับ prototype ของฟังก์ชั่นจ้า
งงป่าวหว่า
แล้วจบโปรแกรมปุ๊ป a,b,c จะเก็บค่าเป็น 0 หมดหรือเปล่าครับ (return 0)
a,b,c จะมีค่าตามที่กำหนดไว้ครับ 10, 3, a/b ตามลำดับครับ
แต่ทุกครั่งที่เรียกฟังก์ชั่นนี้จะได้ 0 ครับ
แต่โดยปกติ จะไม่ค่อยให้มีกาีีร return ใน main นะครับ
#include "stdio.h"
#include "conio.h"
int plus(num1,num2)
{
int ret;
ret = num1+num2;
return ret;
}
void main()
{
int a,b;
int result;
printf("\nEnter first number");
scanf("%d",&a);
printf("\nEnter second number");
scanf("%d",&b);
result = plus(a,b);
printf("Result = %d",result);
getch();
}
ลองเอาำไปรันดูครับ :53:
ตัวอย่างโปรแกรมของแบงก์คือ
ให้รับ Input ค่า a และ b
จากนั้นส่งเข้าฟังก์ชั่น plus
โดยมีค่า พารามิเตอร์คือ num1 และ num2
และชนิดของฟังก์ชั่นนี้คือ int
num1 จะมีค่าเท่ากับ a และ num2 จะมีค่าเท่ากับ b
ใน ฟังก์ชั่น plus นั้นจะนำค่า num1+num2 เก็บไว้ใน ret
จากนั้น ฟังก์ชั่น plus จะ return ค่า ret
นั่นหมายความว่า ค่าที่ได้มาจากฟังก์ชั่นก็คือ a+b นั่นเอง
ให้คิดซะว่า ฟังก์ชัน plus เป็นตัวแปรก็ได้
ดังนั้นค่าที่ return กลับไป ก็ไปที่ตัวแปร plus อะไรแบบนั้น
คำถามแรก เรื่อง clrscr
12. I am having problems using Borland specific functions such as clrscr()
Include conio.h to your source, and add C:\Dev-C++\Lib\conio.o to "Further Object Files" in Project Options (where C:\Dev-C++ is where you installed Dev-C++)
clrscr ไม่เป็น standard C
แต่ Dev-C++ เตรียม object file ไว้ให้ (conio.o)
ปกติการเขียน C จะเป็นตามนี้
1.เขียนบน IDE หรือ notepad ..etc -> editor
2.สั่ง compile จะไม่ได้ file excutable
แต่ได้ object file (.o) ไฟล์เหล่านี่ส่วนของโปรแกรมของเราจะถูกแปลแล้ว แต่ยังไม่รวมกับ library ต่างๆ
3. link
รวมไฟล์ที่เราเขียนกับ library (ใน header ที่มี include นั้นแหละ)
ซึ่ง standard library ที่ผ่านการ compile แล้ว ก็มีนามสกุล .o เหมือนกัน
สรุปใน FAQ ก็คือ
1.ให้ include conio.h เพื่อให้ใช้ clrscr ได้
2.ต้องเอา library (conio.o) มาไว้ใน project เรา ไม่งั้นเวลา link จะหาไม่เจอ
-------------------------
ส่วนเรื่อง return 0 รู้สึกจะพากันเข้าป่าไปเรื่อยๆ(เฉียวทางออกถนนนิดเดียว)
ก่อนจะพูดเรื่อง return 0 ใน function main()
เราต้องรู้ว่า C ใช้แนวคิดว่า everything is functions เพราะฉนั้นทุกๆอย่างใน C มองเป็น function
ถ้ามีการประมวลผลเราจะส่งผลลัพท์กลับไปหาผู้เรียกโดยใช้ return (ด้วยค่าประเภทของ function เช่น int functionx(...))
ส่วนที่เราเขียนหน้า function เป็น int แล้ว return เป็นทศนิยม หลายคนก็คงเคยทำ lab อันนี้(โดนตัดทศนิยม)
---------
main() ก็เป็น function
แล้ว main() ใครเรียก?
ก็ระบบปฏิบัตการไง(OS)
แล้ว return 0 คือ?
ก็ OS เรียก ก็บอก OS ว่าจบด้วยไม่มี error (return 0)
ดังนั้นจะจบโดยบอก(return 0) หรือไม่บอกก็ได้(ไม่ต้องมี return 0)
note:อาจารย์ท่านพาเข้าป่าไปอีกคน
-----------
แล้ว main() ส่งกลับเป็น return 1, 2...n มีไหม?
คำตอบคือมี
หลัง return เราเรียก error code
เราจะใช้กรณี
1.ใช้แสดงว่าโปรแกรมทำงานถูกต้อง(return 0) หรือมีข้อผิดพลาดอะไรไหม (return x)
ใช้ bat file แสดงว่าจบสมบรูณ์หรือไม่
2.ประยุกต์(apply)กับ bat file ที่เป็นเมนู
เมื่อก่อน(ถ้าใครแก่พอ)บางครั้งเราจะเห็นว่า boot เครื่อง เข้า autoexec.bat จะขึ้นเมนูมาให้เรา
เราจะเขียนโปรแกรมเล็กๆ(scanf)แล้วส่ง error code ออกมาเป็นเมนูที่เลือก
ตัวอย่างเช่นนี่ (http://www.blat.net/examples/ErrorLevel2.html) -> ไอ้เจ้า blat บรรทัดที่ 2 เป็นของเขาที่เราเขียนเองได้
ขอบคุณลุงซันครับ + :46:
แต่เขียน Batch file แบบเป็นเมนู นี่ผมทันนะ ที่ใช้ choice กับ if errorlevel เนี่ย :53:
.
.
.
นี่ตูแก่แล้วเหรอเนี่ย :05:
ผมก็ทันนะ แก่เหมือนกันหรือนี่ :05:
อ้างคำพูดจาก: แบงก์ [19] เมื่อ 09 ส.ค. 2008, 22:55 น.
นี่ตูแก่แล้วเหรอเนี่ย :05:
เกิดมาก็แก่กว่าคนที่พึ่งเกิดแหละครับ
จริงๆผมนึกถึงเมนูใน CD ก็ใช้เทคนิคนี่
สรุปว่าปัจจุบันก็มี ผมก็แก่เอง(ที่ลืมไปว่ายังมีใช้อยู่) :53:
เกิดไม่ทัน :53:
แสดงว่าผมยังเด็ก :22:
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 09 ส.ค. 2008, 20:23 น.
main () { }
void main (){ }
int main () { }
มันต่างกันยังไง (ปกติใช้ main เฉยๆ แต่หนังสือ my first book ANSI C ใช้ int main อาจารย์บางครั้งก็ใช้ void main)
ลืมอันนี้
ถ้าอ่านด้านบนของผมจะรู้ว่า
main () { } = void main (){ } = ไม่ต้องส่ง return code กลับไประบบปฏิบัตการ
int main () { } = ส่ง return code กลับไประบบปฏิบัตการ
return 0; กับ return(0);
มันแล้วความถนัดและ compiler ส่วนมากจะเป็น return 0; (ส่วน return(0) จะออกมาในลักษณะของ function)
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 09 ส.ค. 2008, 21:05 น.
:30: งงครับ
เราประกาศ int ให้กับตัวแปรไหน
และคืนค่าให้ตัวแปรไหนครับ
แล้วถ้่าสมมติเราใช้
int main(){
float a,b,c ;
a = 10 ;
b = 3 ;
c = a/b ;
return 0 ;
}
ได้มั๊ยครับ (ฟังก์ชั่น main เป็น int แต่ตัวแปรเป็น float )
แล้วจบโปรแกรมปุ๊ป a,b,c จะเก็บค่าเป็น 0 หมดหรือเปล่าครับ (return 0)
return 0 ไม่เกี่ยวกับการคำนวณและตัวแปร(เลยไม่มีผลอะไร)
ืnote:
ผมลืมเรื่อง void ไปนิด
เห็นหลายคนเข้าใจว่า void คือไม่มีค่า ในภาษาคอมฯ ไม่มีค่าคือ null
แต่ void แปลว่า ละเว้น(ไม่ต้องมี) คือถ้าไม่ต้องการค่าอะไรกลับมาก็ใส่ void นำหน้า
(กันการเตือนของ compiler แค่นั้น ไม่งั้น compiler จะเตือนว่าคุณลืมอะไรหรือปล่าว เราจะได้บอกว่าไม่ได้ลืมโว้ย ตั้งใจ มีอะไรหรือหรือปล่าว?->พูดกับ compiler) :43:
ลุงซันสุดยอด :25:
แจ่มแจ้งเลยครับ :25:
ขอบคุณครับ
แต่ติดงงๆตรงที่
return ครับ ช่วยขยายคำว่า ค่า error ให้หน่อยครับ (กรณี return 0 พอเข้าใจแล้วครับ) แต่ถ้าเป็น 1,2,3...,n นี่มันคือยังไงครับ
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 10 ส.ค. 2008, 00:59 น.
return ครับ ช่วยขยายคำว่า ค่า error ให้หน่อยครับ (กรณี return 0 พอเข้าใจแล้วครับ) แต่ถ้าเป็น 1,2,3...,n นี่มันคือยังไงครับ
1.ถ้าต้องการส่งให้ OS ตรงกับ error code ของ OS เรามักจะใช้ error code ของ DOS
http://www.computerhope.com/xdoseror.htm (http://www.computerhope.com/xdoseror.htm)
http://heim.ifi.uio.no/~stanisls/helppc/dos_error_codes.html (http://heim.ifi.uio.no/~stanisls/helppc/dos_error_codes.html)
แต่จริงๆเรามักไม่ใช้ เราไปใช้กรณีที่ 2-3 แทน
2. error code เราเอง เช่น
ตั้งว่า error=1 เป็น ออกกลางคัน(ทำงานไม่จบ ..etc)
3.ใช้สำหรับ bat ไฟล์ (เขียนเมนู) -> ใช้อันนี้มากสุด
เช่่น
error code =0 -> เมนูแรก
error code =1 -> เมนูสอง
error code =2 -> เมนูสาม
...
..
.
ตัวอย่างก็ของ blat ที่ผมกล่าวไปข้างต้น
-----------
สรุป
1.ถ้าสนใจ C(++) ก็อย่าไปยุ่งกับมันเลยครับ
เอาแค่ return 0 พอ (จบปกติ)
ถ้าจบไม่ปกติก็ return 1
(แต่ก็ไม่ได้เอาไปใช้อะไร ยกเว้นเราต้องเขียนโปรแกรมเช่น bat file เพื่อ check error code)
2.จะจบด้วย return 0 หรือไม่มีก็ได้ (ก็ไม่ได้เอาไปใช้อะไร)
แต่เพื่อความสบายใจว่าหลังจากจบโปรแกรมแล้วแจ้งให้ OS ทราบว่าไม่มีข้อผิดพลาดใดๆก็ return 0
อ๋อๆครับ อ่านไม่ละเอียดเอง :30:
ขอบคุณครับ เข้าใจละครับ :46:
เกิดทันภาษาซีแต่เข้ากรุหมดแล้ว :05:
อ้างคำพูดจาก: ลุงซัน เมื่อ 10 ส.ค. 2008, 03:20 น.
1.ถ้าต้องการส่งให้ OS ตรงกับ error code ของ OS เรามักจะใช้ error code ของ DOS
http://www.computerhope.com/xdoseror.htm (http://www.computerhope.com/xdoseror.htm)
http://heim.ifi.uio.no/~stanisls/helppc/dos_error_codes.html (http://heim.ifi.uio.no/~stanisls/helppc/dos_error_codes.html)
แต่จริงๆเรามักไม่ใช้ เราไปใช้กรณีที่ 2-3 แทน
2. error code เราเอง เช่น
ตั้งว่า error=1 เป็น ออกกลางคัน(ทำงานไม่จบ ..etc)
3.ใช้สำหรับ bat ไฟล์ (เขียนเมนู) -> ใช้อันนี้มากสุด
เช่่น
error code =0 -> เมนูแรก
error code =1 -> เมนูสอง
error code =2 -> เมนูสาม
...
..
.
ตัวอย่างก็ของ blat ที่ผมกล่าวไปข้างต้น
-----------
สรุป
1.ถ้าสนใจ C(++) ก็อย่าไปยุ่งกับมันเลยครับ
เอาแค่ return 0 พอ (จบปกติ)
ถ้าจบไม่ปกติก็ return 1
(แต่ก็ไม่ได้เอาไปใช้อะไร ยกเว้นเราต้องเขียนโปรแกรมเช่น bat file เพื่อ check error code)
2.จะจบด้วย return 0 หรือไม่มีก็ได้ (ก็ไม่ได้เอาไปใช้อะไร)
แต่เพื่อความสบายใจว่าหลังจากจบโปรแกรมแล้วแจ้งให้ OS ทราบว่าไม่มีข้อผิดพลาดใดๆก็ return 0
โดยทั่ว ๆ ไปนะครับ การ return ค่าออกจาก main หรือ function ใด ๆ ก็ตาม ถ้าเป็น c เท่าที่นิยมแล้วนึกออก
1. error จะ return เลขจำนวนเต็มที่เป็น - เช่น -1, -2 แล้วแต่ case ที่ต้องการแยก และถ้าทำงานได้ตามปกติเป็นเป็นเลข +
2. ถ้ามี case หลาย ๆ แบบ แบบที่ handle ได้และ handle ไม่ได้ ก็มักจะรวมที่ handle ไม่ได้เป็นอันเดียวกัน และแยกที่ handle ได้ออกไป
3. บางทีการ return ก็ไม่ได้ return แค่บอกว่าทำงานสำเร็จหรือไม่สำเร็จเท่านั้น อาจจะ return ข้อมูลออกมาเช่น พวกนับ string, trim พวกนี้อาจจะ return ความยาวถ้าสำเร็จ และเป็นเลข - ถ้า error
จรงิ ๆ พวกนี้ไม่มีกฏตายตัว เพียงะแต่ว่าเขียนให้คนเีขียนเองและคนอื่นเรียกใช้ได้ไม่สับสนก็พอ
ที่ผมกล่าวไปเฉพาะ main()
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 10 ส.ค. 2008, 00:59 น.
return ครับ ช่วยขยายคำว่า ค่า error ให้หน่อยครับ (กรณี return 0 พอเข้าใจแล้วครับ) แต่ถ้าเป็น 1,2,3...,n นี่มันคือยังไงครับ
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 09 ส.ค. 2008, 20:23 น.
return 0; คืออะไรครับ
ถามอาจารย์เค้าบอกว่า มันต้องมีทุกครั้งที่จบโปรแกรม ความหมายแค่เตือนให้มันรู้ว่าจบโปรแกรมแล้วแค่นั้น :09:
เพราะเห็นต้องการตัวอย่างของ error code และเป็นการตอบต่อเนื่องที่อาจารย์ท่านอธิบายเรื่องการจบโปรแกรม
จึงไม่เกี่ยวกับ function ปกติ(ซึ่งมีอยู่หลากหลายว่าต้องการประมวลผลเรื่องอะไร)
แต่ที่อธิบายส่วนมากจะไป function
เดี๋ยวจะสับสนเท่านั้นครับ เพราะเรื่องนับ string,trim ..etc แม้จะใช้ function แต่นิยมแสดงผลบนจอ(ไม่ส่งมาที่ OS)
เรียนเรื่อง ฟังก์ชั่น แล้วก็ Prototype หรือยังครับ ถ้าเรียนแล้วเดี๋ยวผมมาช่วยอธิบายให้ :12:
เพิ่งเริ่มครับ (เรียนได้คาบเดียว)
เริ่มที่สร้างฟังก์ชั่นเองอยู่ครับ
แล้วอาจารย์ก็หยุด แล้วไปสอนเรื่องการแรนดอมเลขครับ
ตอนนี้มีคำถามเรื่องการแรนดอมเลขครับ
ผมต้องการสุ่มเลขสองตัวครับ (ที่ช่วงเท่ากัน)
เช่น
int a,b;
srand(time(null));
a = 1 + (int)rand()%100 ;
b = 1 + (int)rand()%100 ;
แต่ส่วนใหญ่แล้วเนี่ย a จะ มีค่าเท่ากับ b
คิดว่าสาเหตุมาจาก srand(time(null)); (ถูกต้องมั๊ยครับ) เพราะเอาเลขมาจากแหล่งเดียวกัน (ใช่ clock ของ cpu หรือเปล่าครับ)
ถ้าเราอยากให้(ส่วนใหญ่) สุ่มเลขออกมา a ไม่เท่ากับ b จะทำไงดีครับ
เบิล เนื้อหา ซูโดโค้ด
ทำสรุปก่อนสอบ แต่ขายดี ถ่ายเอกสารกันใหญ่ เลยพิมพ์ใส่ word เลย
เผื่อใครอยากได้ครับ
http://earthchie.samooclub.com/images/stories/basic_c.doc
Random เลขสองหลักเคยทำเป็นการบ้านตอนเรียนปี 1 :53:
แต่ใช้แค่ ประกาศ randomize(); แล้วสั่ง random(); เลย
ยังไงเอาไอ้นี่ไปศึกษาดู :53:
ป.ล. ตอนนั้นมาถามลุงซันเรื่อง Arrays ด้วย :53:
ป.ล.2 ใช้ BC 3.1 for DOS compile นะ ไม่งั้น Error บานเบอะ :37:
เอ่อ อาจารย์ผมเค้าให้ประกาศเฮดเดอร์ไฟล์ time.h
จะได้เอามาใส่ในคำสั่ง
srand(time(null));
ในที่นี้
randomize(); = srand(time(null));
หรือเปล่าครับ
หรือความหมายเีดียวกันแต่ srand(time(null)); ดึงเวลามาจาก clock ของ cpu แต่ randomize(); ไม่ใช่
ป.ล. ไปลองก่อน ขอบคุณครับ
ลองมาแล้ว
randomize(); ไม่ใช่คำสั่งมาตรฐานใช่มั๊ยครับ
อย่างนี้นี่เอง
พอจะมีคำสั่งมาตรฐานมั๊ยครับ
คำสั่งมาตรฐานไม่ทราบครับ ตอนเรียน อ. ยึด Borland C เป็นมาตรฐาน :05:
ยังไงเดี๋ยวลองไปคุ้ยดูก่อน :42:
แหะๆ ขอบคุณครับ
พอดีผมเรียน dev c++ เลยจะใช้ส่งงานไม่ได้ครับ
จริงๆไม่ต้องก็ได้ครับ ไม่ได้ซีเรียสขนาดนั้น แค่สงสัยเฉยๆครับ
แต่ก็ขอบคุณครับ :46:
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 12 ส.ค. 2008, 16:03 น.
ตอนนี้มีคำถามเรื่องการแรนดอมเลขครับ
ผมต้องการสุ่มเลขสองตัวครับ (ที่ช่วงเท่ากัน)
เช่น
int a,b;
srand(time(null));
a = 1 + (int)rand()%100 ;
b = 1 + (int)rand()%100 ;
แต่ส่วนใหญ่แล้วเนี่ย a จะ มีค่าเท่ากับ b
คิดว่าสาเหตุมาจาก srand(time(null)); (ถูกต้องมั๊ยครับ) เพราะเอาเลขมาจากแหล่งเดียวกัน (ใช่ clock ของ cpu หรือเปล่าครับ)
ถ้าเราอยากให้(ส่วนใหญ่) สุ่มเลขออกมา a ไม่เท่ากับ b จะทำไงดีครับ
ผมว่าน่าจะใช้ srand 2 รอบนะครับ จะได้ไม่เหมือนกัน
int a,b;
srand(time(null));
a = 1 + (int)rand()%100 ;
srand(time(null));
b = 1 + (int)rand()%100 ;ยังไม่ได้ลองนะครับ ได้ไงบ้างไม่รู้ :03:
อ้างคำพูดจาก: ลุงซัน เมื่อ 11 ส.ค. 2008, 18:07 น.
ที่ผมกล่าวไปเฉพาะ main()เพราะเห็นต้องการตัวอย่างของ error code และเป็นการตอบต่อเนื่องที่อาจารย์ท่านอธิบายเรื่องการจบโปรแกรม
จึงไม่เกี่ยวกับ function ปกติ(ซึ่งมีอยู่หลากหลายว่าต้องการประมวลผลเรื่องอะไร)
แต่ที่อธิบายส่วนมากจะไป function
เดี๋ยวจะสับสนเท่านั้นครับ เพราะเรื่องนับ string,trim ..etc แม้จะใช้ function แต่นิยมแสดงผลบนจอ(ไม่ส่งมาที่ OS)
return สำหรับ main โปรแกรมมีที่ใช้อยู่เหมือนกันนะครับ เช่น การใช้ exec("โปรแกรม"); โดย exec จะเอาค่าที่ return จาก main โปรแกรมมาใส่ให้ ดังนั้น มองว่า main เป็น function ใหญ่ ๆ function นึงก็ได้ครับเวลาเรียนเรื่อง function แล้วจะไม่ได้งง
ส่วนเรื่อง rand() ใน C เนื่องจาก ภาษา C function rand() เป็น sudo random ครับไม่ใช่การ random จริง ๆ sudo random คือการเตรียมเลขไว้แล้ว 1 ชุด เ่ช่น 5 203 32 12 64 9 39 .... โดยมีขนาดเท่าไหร่ก็แล้วแต่ ไม่เกี่ยวกับคนเขียนโปรแกรมนะ ดังนั้นถ้าเราใช้คำสั่ง rand() โดยที่เราไม่ srand() ก็จะได้ค่าเดิมทุกครั้ง เพราะมันไปเอาค่าจากเลขที่เตรียมไว้แล้ว
srand() (seek random) คือการระบุว่าเราจะเริ่มใช้ตัวเลขตั้งแต่ตำแหน่งที่เท่าไหร่ในชุด sudo random ของ rand() ครับ โดย srand ก็จะรับค่ามาเป็นตำแหน่ง โดยทั่ว ๆ จะใช้เวลา ( function time() ) ในการ set เพราะง่ายที่สุด
ขอบคุณครับ
วิธีแก้ก็คือเปลี่ยนแหล่งชุดของเลข จาก time ไปเป็นแหล่งอื่นใช่มัยครับ
เปลี่ยนไปเป็นอะไรได้บ้างครับ
เป็นอะไรก็ได้ครับ ศัพท์ในวงการเรียกกันว่า salt
เกลือนี่แหละครับ
เพราะจริงๆ แล้ว ฟังก์ชั่น random ในคอมถ้าลองรันดูจำนวนมากๆ จะเห็นรูปแบบการ random ของมันนะครับ
การเติมเกลือเข้าไปก็เพื่อเปลี่ยนรูปแบบนั้น เท่านั้นเอง
อ้างคำพูดจาก: WuTtY เมื่อ 13 ส.ค. 2008, 15:41 น.
return สำหรับ main โปรแกรมมีที่ใช้อยู่เหมือนกันนะครับ เช่น การใช้ exec("โปรแกรม"); โดย exec จะเอาค่าที่ return จาก main โปรแกรมมาใส่ให้ ดังนั้น มองว่า main เป็น function ใหญ่ ๆ function นึงก็ได้ครับเวลาเรียนเรื่อง function แล้วจะไม่ได้งง
shell command(exec) มันก็ไม่ต่างอะไรกับการเขียน bat file.
ผมว่าแล้วแต่ความถนัดละครับ
เพียงแต่ถ้าไป advance จะทำให้ผู้เริ่ม(ว่าทำไมต้อง return 0 ก่อนจบโปรแกรมด้วย/ไม่ return 0 ก็ได้) ถ้าไป process/program ซ้อนเข้าไป จะงงๆเท่านั้น
ผมจึงเน้น error code ที่เขาถามมาเท่านั้น
-------------------
ส่วน random เห็นมีอธิบายเยอะแล้ว ผมก็ ok ละ (ไม่งั้นอาจทำให้งงกันไปอีก)
ไปละ เพราะผมก็เริ่มงงๆตัวเอง :54:
อ้างคำพูดจาก: EaRthCh!E* เมื่อ 14 ส.ค. 2008, 12:25 น.
ขอบคุณครับ
วิธีแก้ก็คือเปลี่ยนแหล่งชุดของเลข จาก time ไปเป็นแหล่งอื่นใช่มัยครับ
เปลี่ยนไปเป็นอะไรได้บ้างครับ
srand(time()) คือการเปลี่ยนตำแหน่งของ rand() อยู่แล้วครับ
เพราะทุกครั้งที่เราใช้ time() มันจะได้ค่าเป็นตัวเลขใหม่ ๆ มาเรื่อง ๆ เพราะเวลาเดินอยู่ตลอดครับ ทำให้ไม่ได้ค่าซ้ำ
เพิ่มเติมให้นิดนึงนะครับ
ผมว่าจะเขียนโปรแกรมให้เป็นต้องอ่าน help ให้เป็นก่อนครับ (help หรือบางทีก็เรียกว่า function reference ) เท่าที่ผมดูจากคำถามนะครับ ผมเข้าใจว่าไม่รู้เลยว่าฟังก์ชั่นที่เรียกใช้
1. ทำงานอะไร
2. รับ parameter เป็นอะไร
3. return ค่าอะไรออกมา
ก่อนจะลงมีเขียน หรืออ่าน code ควรเข้าใจตรงนี้ก่อนครับ มันเป็นพื้นฐานที่สำคัญ
ยกตัวอย่างนะ สมมติว่าผมไม่รู้ว่า srand() คืออะไร ผมก็ลองไป search จาก c function reference ได้
srand()
Prototype: void srand(unsigned int seed);
Header File: stdlib.h (C) or cstdlib (C++)
Explanation: Srand will seed the random number generator to prevent random numbers from being the same every time the program is executed and to allow more pseudorandomness.
ความหมายนะครับ
prototype: คือรูปแบบการใช้งาน ว่ารับ parameter อะไร และ return ค่าอะไร ในที่นี่ รับ integer และไม่ return ค่าใด ๆ ออกมา ถ้ายังไม่เข้าใจให้ไปอ่านเรื่อง prototype เพิ่มเติมนะครับ ว่า parameter และ return คืออะไร มีอะไรได้บ้าง
header file: คือถ้าเวลาเราต้องการจะใช้งาน function นี้เราจำเป็นต้อง include อะไรเข้ามาบ้าง (ใส่ไว้ตัวหัว file นั่นแหละ) ซึ่งจะแตกต่างกันขึ้นอยู่กับ compiler แนะนำว่าให้อิงตามมาตราฐาน คือ ANSI C นะครับ ส่วนใหญ่ถ้าเขียนตาม ANSI C จะ compile ได้กับ compiler ทุกตัว
explanation: ก็ตัวใครตัวมันล่ะครับ แล้วแต่ function
โชคดีนะครับ :53:
:38:
อ้างคำพูดจาก: WuTtY เมื่อ 14 ส.ค. 2008, 16:58 น.
srand(time()) คือการเปลี่ยนตำแหน่งของ rand() อยู่แล้วครับ
เพราะทุกครั้งที่เราใช้ time() มันจะได้ค่าเป็นตัวเลขใหม่ ๆ มาเรื่อง ๆ เพราะเวลาเดินอยู่ตลอดครับ ทำให้ไม่ได้ค่าซ้ำ
เพิ่มเติมให้นิดนึงนะครับ
ผมว่าจะเขียนโปรแกรมให้เป็นต้องอ่าน help ให้เป็นก่อนครับ (help หรือบางทีก็เรียกว่า function reference ) เท่าที่ผมดูจากคำถามนะครับ ผมเข้าใจว่าไม่รู้เลยว่าฟังก์ชั่นที่เรียกใช้
1. ทำงานอะไร
2. รับ parameter เป็นอะไร
3. return ค่าอะไรออกมา
:46: ถูกเผงเลยครับ สงสัยต้องรื้อความรู้ใหม่หมด :07:
ผมซื้อหนังสือมาเล่มนึง ก็ไม่มีบอก สงสัยต้องหาที่มันบะเอียดหน่อยละ
ป.ล. มี ANSI C อยู่เล่มนึง เป็นภาษาปะกิต แต่อ่านแทบไม่รู้เรื่อง :05:
แบบนี้ครับ http://www.chulabook.com/cgi-bin/main/2007/description.asp?barcode=9781418835569
ไม่รู้ดีหรือเปล่า แต่อ่านแทบไม่รู้เรื่อง :43: :44:
Help (ใน Turbo C ใช้ว่า Index) ของ C ถือว่ารายละเอียดเยอะใช้ได้ครับ
ผมก็อุดหนุนในนั้นบ่อยๆ
ว่าแต่เรื่อง return ค่าจากฟังก์ชั่นนี่ เก็ตหรือยังครับ
อ๋อๆ เก็ตแล้วครับ :46:
:42: คร้าบผม ว่าแต่เอิร์ทเรียนอยู่ที่ไหนนะครับ
วิทยาลัยศิลปะ สื่อ และเทคโนโลยี สาขาวิศวกรรมซอฟต์แวร์ มหาลัยเชียงใหม่ครับ
:52: ใกล้กันเลย ถ้าเจอมีน ปี 3 ก็ไปถามก็ได้นะ
เพราะมันก็เรียน SE เหมือนกัน น่าจะแนะนำให้ได้ครับ
:46: ขอบคุณครับ :33:
ขอถามการบ้านครับ
ถ้าเรารับค่าตัวเลข 0-127 มา
แล้วเราใช้คำสั่งอะไรในการแปลงเลขนั้นๆ ไปเป็นอักษร ตามรหัสแอสกีครับ :46:
ได้แล้วครับ
แค่รับเลข 0-127 มาเป็น integer
แต่เวลาแสดงผล ใช้ %c แทน %d ได้เลยแฮะ :08:
ลองดู ฟลุ๊คได้ด้วยเฮ้ย :07:
:08: เล่นเอง ชงเองเสร็จเลยแฮะ
กำลังจะมาบอกเหมือนกันว่า char มันรับได้ 2 อย่างน่ะครับ
คือตัวอักษร กับหมายเลขอักษร
เอ้อ ได้พอดีเลย เจ๋งมาก :12:
ป.ล. ใกล้สอบ จะให้ติวก็บอกนะครับ จัดให้ (แต่คงแค่ในระดับพอใช้งานได้ ไม่ลึกมาก เท่าลุงซันครับ - -")
:02:
ขอบคุณนะครับ :33:
ใช้ Quincy หรือไม่ก็ C-Free ดูค่ะ
เอาไว้ถ้าตัวที่ได้มามีปัญหาจะลองดูนะครับ
ขอบคุณครับ
ขุด+เบิล :02:
ผมเจอคำสั่งมาตรฐาน ที่ใช้แทน clrscr(); ได้แล้ว
เจอมาจาก ที่นี่ (http://www.google.co.th/url?sa=t&source=web&ct=clnk&cd=1&url=http%3A%2F%2F209.85.175.104%2Fsearch%3Fq%3Dcache%3AP6UBrWt17q8J%3Awww.csharphelp.com%2Fboard2%2Fread.html%253Ff%253D1%2526t%253D47731%2526a%253D2%2Bc%2Bprogramming%2Bclear%2Bscreen%2Bclrscr%26hl%3Dth%26ct%3Dclnk%26cd%3D1%26gl%3Dth%26client%3Dfirefox-a&ei=5XEISZHPOI366QP8oOnMBg&usg=AFQjCNEXrQLHyQWvVG3I4NHBZb8_DLBl1w&sig2=cCuGNLbhU6SQAeDkIRNA5A)
มันคือคำสั่ง system("cls");
ต้องประกาศ header stdlib.h ด้วย
ใช้งานได้ดีครับ ^^
ดูเหมือนมันจะยุ่งยากกว่าเดิมเชียวแหละ :05:
ไม่นะครับ
ก็ถ้าใช้ turbo c
จะใช้ clrscr(); ก็ต้องประกาศ conio.h เหมือนกันนี่ครับ
แต่ system("cls"); เปลี่ยนไปประกาศ stdlib.h
มันยืมคำสั่ง cls ของ command บน windows มาใช้น่ะครับ :42:
เห็นได้จากลองเปลี่ยนจาก cls เป็นคำสั่งอย่างอื่น เช่น edit, pause ฯลฯ
เคยลองบน linux เน่า :08:
ป.ล. บางทีผมก็ใช้ system("pause"); แทน getch();
เพราะไม่ต้องเสียเวลาเพิ่มบรรทัด printf("Press any key to continue"); :53:
แล้วมีคำสั่ง clear screen ที่แบบ
คอมไพล์ได้บนทุกคอมไพล์เลอร์ ทุก OS มั๊ยครับ
หรือว่าไม่มีเลย :03:
หาอยู่เหมือนกัน :05:
ปัจจุบันเขียนฟังก์ชัน loop สั่ง printf("\n"); 50 รอบเอา :30:
ใส่มันสองคำสั่งเลยครับ
include มันสอง lib
ทำ method ขึ้นมาที่เรียกทั้งสองคำสั่ง
แล้วไปเรียก method นั้นแทน
อ้างคำพูดจาก: REROYD เมื่อ 30 ต.ค. 2008, 13:34 น.
หาอยู่เหมือนกัน :05:
ปัจจุบันเขียนฟังก์ชัน loop สั่ง printf("\n"); 50 รอบเอา :30:
:03: :30: เหมือนผมตอนแรกเลย
อ้างคำพูดจาก: เอา เมื่อ 30 ต.ค. 2008, 13:40 น.
ใส่มันสองคำสั่งเลยครับ
include มันสอง lib
ทำ method ขึ้นมาที่เรียกทั้งสองคำสั่ง
แล้วไปเรียก method นั้นแทน
งงครับ :03:
งงด้วยคน แต่เข้าใจว่าแบบนี้หรือเปล่าครับพี่เอ ? :09:
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void clsn() {
system("cls");
clrscr();
}
void main(){
printf("blah blah blah");
clsn();
}
คิดไปคิดมาไม่น่าใช่แฮะ :08:
เขียน c ไม่เป็น แต่น่าจะทำแบบนี้ได้
ให้ตรวจ return กลับว่ามันทำสำเร็จมั้ย ถ้าไม่สำเร็จก็ไปใช้อีก command หนึ่ง
if not system("cls")
else system("clear")
อะไรประมาณนี้ได้มั้ยๆ เขียนไม่เป็นแฮะ
ถ้าใช้บ่อยๆ ให้เขีัยนไว้เป็น function ไว้เรียกใช้ต่างหาก
ครับ แต่สมมติ
คอมไพล์เลอร์ของเราไม่ใช่ของ Borland แถมคอมไพล์บนลินุกซ์
เราก็ใช้คำสั่งไม่ได้ทั้งสองอันอยู่ดีอ่ะครับ :01:
หา ๆ มาเจอเว็บนึง ฝรั่งมันบอกว่า
อ้างอิงThrow the monitor out the window
Advantages:
- Pretty fail-proof.
- Releases your anger.
Disadvantages:
- No more monitor.
- It makes a mess.
- Not portable (monitors are heavy).
:30:
แต่ก็เจอคำสั่ง clear screen ของลินุกซ์แล้ว
system("clear");
โอเค จบประเด็น :30:
:30: อ๊าก ไอเดียสุดยอด
โอ๊ะ ผมก็พึ่งรู้เหมือนกันแฮะว่าต้องใช้ system("clear") ในลีนุกซ์
ขอบคุณมากครับ
ตอนนี้เรียน File processing อยู่ครับ Implement ด้วยภาษา C อยากจะุถามว่า
มีวิธีแยกค่า string ออกเป็นหลาย ๆ ส่วนโดยไม่ต้องวน loop เอาออกมาทีละตัวอักษรไหมครับ ?
เช่นประกาศ char[]="Hello?Man?and?Hello?Girl";
เราจะตัดเอาเฉพาะ "Hello" "Man" "and" "Hello" และ "Girl" มาใส่ใน arrays ต่างหากอีก 5 ชุด
โดยมีเงื่อนไขให้ตัว '?' เป็นตัวคั่นคำยังไงครับ ?
พอจะมีคำสั่งแนว ๆ นี้ไหมครับ ?
งมอยู่ 2 วันแล้วยังหาวิธีอื่นนอกจาก loop เอามันออกมาทีละตัวไม่ได้ :05:
ถ้า java มี split
ถ้าซีลองอันนี้ได้มั๊ยครับ strtok แต่ก็เหมือนว่าต้องวนลูปอยู่ดี
http://www.cplusplus.com/reference/clibrary/cstring/strtok.html (http://www.cplusplus.com/reference/clibrary/cstring/strtok.html)
:25: +
แบบนี้แหละครับที่อยากได้ :25:
มาดูดความรู้ :25:
มีคำถาม อีกแล้วครับ
มีใครใช้ Turbo Vision คู่กับ BorlandC หรือ TurboC เป็นบ้างครับ ?
พอดีมีโปรเจกต์ส่งท้ายเทอม แล้วอยากจะทำ TUI (Text User Interface)
ปรากฎว่าโหลดมาแล้วใช้ไม่เป็นโดยสิ้นเชิง :05:
http://www.sigala.it/sergio/tvision/ (http://www.sigala.it/sergio/tvision/)
http://tvision.sourceforge.net/ (http://tvision.sourceforge.net/)
คิดไปคิดมา หรือตูจะเขียนเองมันซะเลย :37:
ีอยากทราบว่าในภาษาีซีีมีfunctionเกี่ยวกับการบอกเวลาปัจจุบันไหมค่ะ
เห็นแต่ภาษาc++
ขุดจาก time.h อะ
http://www.cplusplus.com/reference/clibrary/ctime/localtime.html (http://www.cplusplus.com/reference/clibrary/ctime/localtime.html)
คำสั่งอื่นๆก็
http://www.cplusplus.com/reference/clibrary/ctime/ (http://www.cplusplus.com/reference/clibrary/ctime/)
พึ่งเห็นกระจู๋
ว่าจะมาร่วมด้วยช่วยตอบ
กลายเป็นว่า เข้ามาเพิ่มความรู้ตัวเองแทน :33:
ลุงซัน รู้ลึกรู้จริง :46::35:
ผมก็เคยสงสัยนะ ว่า ทำไมฟังก์ชัน main ต้อง มี รีเทิร์นอะไร แล้วรีเทิร์นไปให้ใคร
มาทึกทักเอา จากตอนที่ลองเขียน bat เหมือนกันนี่ละคับ
นึกว่า เป็นผลลัพธ์ สำหรับเวลาโปรแกรมอื่นมาเรียกโปรแกรมนี้อีกทีอย่างเดียว
(พึ่งรู้วันนี้เองว่าเรียก error code )
อ้างคำพูดจาก: PiPoPiPi เมื่อ 27 ม.ค. 2009, 23:06 น.
ขุดจาก time.h อะ
http://www.cplusplus.com/reference/clibrary/ctime/localtime.html (http://www.cplusplus.com/reference/clibrary/ctime/localtime.html)
คำสั่งอื่นๆก็
http://www.cplusplus.com/reference/clibrary/ctime/ (http://www.cplusplus.com/reference/clibrary/ctime/)
ขอบคุณมากๆค่ะ :46:
เมื่อหลายวันก่อนได้ไปขอคำแนะนำ เกี่ยวกับการใช้ time.h
กับอาจารย์ที่มหาลัย เรื่องการแสดงเวลาปัจจุบัน
ท่านก็ได้ให้โค๊ดตัวอย่างมาให้ เลยมานำเสนอให้เอาไปใช้กันคิดว่าคงมีประโยชน์ไม่มากก็น้อยคะ
#include <stdio.h>
#include <time.h>
void main()
{
time_t now;
struct tm* tm;
now =time (0);
tm = localtime (&now);
/*sec time.h for struct tm members*/
printf("%d",tm);
}
ผลการรันก็จะได้
Current time is 7:55:37.30p
http://devzilla.exteen.com/20070829/7-array-string (http://devzilla.exteen.com/20070829/7-array-string)
เว็บสอนภาษาซี สำหรับผู้ที่ไม่เคยเรียนอะไรมากอย่างผม :47:
:25: ได้แหล่งข้อมูลแล้ว
เพราะซัมเมอร์นี้ต้องสวมบทอาจารย์ จัดค่ายซัมเมอร์แคมป์ให้น้องที่คณะ :30:
อยากเรียน ANSI C :05:
Borland มันทำให้เราสบายเกินไป พอไปจับ C บนลินุกซ์ทำอะไรไม่ถูกนอกจาก Hello World :05:
ตอนนี้กำลังเขียน Project ส่งอาจารย์คะ
ทำเกี่ยวกับเรื่องเวลานั้นแหละคะ
แสดงเวลาปัจจุบันได้เป็นที่เรียบร้อยแล้ว
ที่นี้ก็มีปัญหาเกี่ยวกับการจัดเก็บเวลาลงไปใน file ข้อมูลนะคะ :16:
คือทำทุกอย่างแล้วมันก็บันทึกเป็นภาษาต่างดาวอยู่เลยคะ
ไม่ว่าจะแปลงจาก int เป็น string โดยใช้ itoa();
เปลี่ยน fwrite -->fscanf ก็ยังไม่ได้นะคะ
จากโค๊ดนี้
struct tm;
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday:
int tm_isdst;
};-------->นี้คือstruct tm ที่ compile สร้างให้แล้ว
#include <time.h>
#include <stdio.h>
void main()
{
struct tm *ptr;
time_t lt;
lt = time(NULL);
ptr = localtime(<);
printf(asctime(ptr));
}
------>ผลที่ได้ คือ Mon Mar 02 20:01:43 2009
ต้องการนำผลที่ได้ไปเก็บไว้ใน file ในรูปแบบนี้เลยนะคะ
:56:ขอความกรุณาจากผู้รู้ด้วยนะคะ :46: :46:
:16:ช่วยแก้โจทย์หน่อยนะคับ
อย่างด่วน...........
เขียนโปรแกรมรับข้อมูลนักศึกษา(ไม่เกิน 25 คน) โดยข้อมูลประกอบด้วยเลขที่และคะแนน (เลขจำนวนเต็ม 2 หลัก) ชื่อ (ภาษาอังกฤษ ไม่เกิน 25 ตัวอักษร) และคะแนน(เลขจำนวนเต็ม 2 หลัก) รับข้อมูลเข้าไว้จนครบแล้วแสดงผล เลือกแสดงผลตามอักษรหน้าชื่อ เลือกแสดงผลตั้งแต่ผู้มีคะแนน 50
ขอโค๊ตนะคับ
ขอบคุณครับ
รอหน่อยนะครับ
เอจะเขียนให้ :25:
อ้างคำพูดจาก: lb เมื่อ 14 ก.ย. 2009, 11:20 น.
:16:ช่วยแก้โจทย์หน่อยนะคับ
อย่างด่วน...........
เขียนโปรแกรมรับข้อมูลนักศึกษา(ไม่เกิน 25 คน) โดยข้อมูลประกอบด้วยเลขที่และคะแนน (เลขจำนวนเต็ม 2 หลัก) ชื่อ (ภาษาอังกฤษ ไม่เกิน 25 ตัวอักษร) และคะแนน(เลขจำนวนเต็ม 2 หลัก) รับข้อมูลเข้าไว้จนครบแล้วแสดงผล เลือกแสดงผลตามอักษรหน้าชื่อ เลือกแสดงผลตั้งแต่ผู้มีคะแนน 50
ขอโค๊ตนะคับ
ขอบคุณครับ
เอาที่เขียนไปมั่งแล้วมาดูหน่อยดิครับ ว่าติดตรงไหน จะได้ช่วยกันแก้ได้ :27:
:44: โจทย์ที่ให้ยังม่ายได้เขียนเลยคับพี่:16:
รบกวนช่วยหน่อยนะคับ
ด่วนมาก
จำเป็นคับ
ถ้ายังไม่ได้เริ่มอะไรเลย ก็อย่าเอามันเลยครับคะแนนน่ะ
:01:
:46:พอดีว่าเด็กใหม่อ่ะคับพี่
เพิ่งเรียน แค่อยากให้พี่ช่วยแนะนำบ้าง
ขอบคุณครับ
ไม่ได้ใจดำนะ
แต่ลองทำเองดูก่อน
ติดตรงไหนแล้วจะสอนให้
(บางทีอาจทำที่เหลือให้เลยคนแถวนี้ใจดีอยู่แล้ว)
แต่ก่อนอื่นต้องทำเองก่อนอย่าคิดว่าตัวเองทำไม่ได้
ปล.ขอถามอะไรอีกซักอย่าง งานส่งวันไหน แล้วอาจารย์สั่งตั้งแต่วันไหน :09:
งานส่งตอนบ่าย
และสั่งตอนเช้าคับพี่
เป็นแบบฝึกหัดคับ
ขอบคุณครับ
ถ้าใครเริ่มจากศูนย์แบบไม่รู้อะไรเลย แล้วมาให้ช่วยนะ ตูใจดำใส่เลยแหละ :47:
ยุคนี้แหล่งข้อมูลเยอะแยะ มันต้องช่วยตัวเองก่อน ไว้ไม่ไหวหรือตันจริงๆ ค่อยขอความช่วยเหลือจากคนอื่น
ทีบทสรุป, แคร๊กเกม หายากกว่าเป็นกอง ยังหากันเจอ :37:
ส่งบ่ายเหรอครับ ซักเย็นๆ จะเริ่มเขียนให้นะครับ
ถ้าสั่งให้โดยไม่สอนมาก่อน ทำไม่ได้ก็ไม่แปลกครับ
ถ้าสั่งให้โดยสอนมาก่อนก็แสดงว่าที่สอนน่ะ น่าจะครอบคลุมหมดแล้ว
psudo code คิดไว้รึยังครับ
ภาษา c import อะไรมาบ้างครับ
ถ้ามาแบบติดปัญหา getchar ไม่ได้ system.out ไม่ถูก ค่อยว่ากันครับ
อ้างคำพูดจาก: REROYD เมื่อ 12 ก.พ. 2009, 18:43 น.
อยากเรียน ANSI C :05:
Borland มันทำให้เราสบายเกินไป พอไปจับ C บนลินุกซ์ทำอะไรไม่ถูกนอกจาก Hello World :05:
ลองใช้ Dev-C++ สลับกับ Borland C สิครับ แต่ถ้าเขียนบน Dev C++ จะมีคำสั่งที่ไม่เหมือนBorlandหรอกครับ เช่น clrscr(); ใน DevC++ จะเป็น system("cls");
นะครับ^^