พิมพ์ธงชาติอเมริกัน!


29

วันท้าทายพิเศษสำหรับวันชาติสหรัฐอเมริกา (USA) คุณต้องเขียนโปรแกรมที่พิมพ์การเป็นตัวแทน ASCII ของ The American Flag

0
|---------------------------------------------------------
| *   *   *   *   *   * #################################|
|   *   *   *   *   *                                    |
| *   *   *   *   *   *                                  |
|   *   *   *   *   *   #################################|
| *   *   *   *   *   *                                  |
|   *   *   *   *   *                                    |
| *   *   *   *   *   * #################################|
|   *   *   *   *   *                                    |
| *   *   *   *   *   *                                  |
|########################################################|
|                                                        |
|                                                        |
|########################################################|
|                                                        |
|                                                        |
|########################################################|
|                                                        |
|                                                        |
|########################################################|
|---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

การเว้นวรรคต่อท้ายในแต่ละบรรทัดรวมถึงการขึ้นบรรทัดใหม่หนึ่งบรรทัดได้รับอนุญาต

โปรดทราบว่านี่ไม่ใช่วิธีที่ธงควรดู แต่มันใกล้เคียงที่สุดที่ฉันจะได้รับด้วย ASCII

ตามปกตินี่คือเพื่อใช้ช่องโหว่มาตรฐานและคำตอบที่สั้นที่สุดในการชนะไบต์!


อนุญาตให้ใช้ช่องว่างต่อท้ายได้หรือไม่
Dennis

@Dennis ตราบใดที่มันไม่มากเกินไปฉันไม่เห็นว่าทำไม ดังนั้นหนึ่งบรรทัดขึ้นบรรทัดใหม่ก็โอเค
DJMcMayhem

9
ฉันจะทำให้การประกวดป๊อปอัพและดูว่าใครพิมพ์ธงที่สมจริงที่สุด
Hosch250

7
@ Hosch250 นั่นจะปิดตัวลงในฐานะ "การประกวดศิลปะ"
Sp3000

1
@ สตีฟเวอร์ริลใช่แล้ว แต่เราสามารถวาดรูปคลื่นกระเพื่อมในสายลมได้
Hosch250

คำตอบ:


21

CJam, 184 120 109 101 76 74 69 67 64 62 58 ไบต์

0'-57*"  #"56f*'|f+7*2>" *  "50*22/W<Sf+..e&~J$]N'|+a37*.+

ลองใช้ออนไลน์ในล่าม CJam

ความคิด

ส่วนที่น่าสนใจที่สุดของธงคือลายดาวและลายทาง

หากเราทำการเว้นวรรคสองครั้งและมีการเซ็นหมายเลข 56 ครั้งและต่อท้ายแถบแนวตั้งต่อกันเราจะได้รับ

                                                         |
                                                         |
#########################################################|

ทำซ้ำรูปแบบนี้ 7 ครั้งและทิ้งสองบรรทัดแรกเราจะได้แถบ:

#########################################################|
                                                         |
                                                         |
#########################################################|
                                                         |
                                                         |
#########################################################|
                                                         |
                                                         |
#########################################################|
                                                         |
                                                         |
#########################################################|
                                                         |
                                                         |
#########################################################|
                                                         |
                                                         |
#########################################################|

ตอนนี้ถ้าเราทำซ้ำสตริง" * "50 ครั้งและแบ่งผลลัพธ์ออกเป็นกลุ่มความยาว 22 เราจะได้ดาว:

 *   *   *   *   *   *
   *   *   *   *   *  
 *   *   *   *   *   *
   *   *   *   *   *  
 *   *   *   *   *   *
   *   *   *   *   *  
 *   *   *   *   *   *
   *   *   *   *   *  
 *   *   *   *   *   *
   

ช่องว่างเล็ก ๆ น้อย ๆ ออกไป แต่เราสามารถแก้ไขได้โดยกำจัดก้อนสุดท้ายและต่อท้ายพื้นที่ที่เหลือ

ทีนี้ถ้าเราใส่แถบและดาวเข้าไปแทนที่

 *   *   *   *   *   * #################################|
   *   *   *   *   *                                    |
 *   *   *   *   *   *                                  |
   *   *   *   *   *   #################################|
 *   *   *   *   *   *                                  |
   *   *   *   *   *                                    |
 *   *   *   *   *   * #################################|
   *   *   *   *   *                                    |
 *   *   *   *   *   *                                  |
########################################################|
                                                        |
                                                        |
########################################################|
                                                        |
                                                        |
########################################################|
                                                        |
                                                        |
########################################################|

สิ่งที่เหลือให้ทำคือการเพิ่มเส้นประสองบรรทัดจำนวน 57 เส้นเพิ่มคอลัมน์แนวตั้ง 37 แท่งแล้ววางเชอร์รี่ไว้ด้านบน

รหัส

0         e# Push a zero.
'-57*     e# Push a string of 57 dashes.
"  #"56f* e# Repeat each character in the string 56 times.
'|f+      e# Append a vertical bar to each resulting string.
7*        e# Repeat the resulting array of strings 7 times.
2>        e# Discard the first two strings.
" *  "50* e# Repeat the string 50 times.
22/       e# Split the result into chunks of length 22.
W<        e# Discard the last, partial chunk.
Sf*       e# Append a space to each chunk.
..e&      e# Twofold vectorized logical AND.
          e# Since all characters in the strings are truthy, this always selects
          e# the second character, painting the stars over the stripes.
~         e# Dump all resulting strings on the stack.
J$        e# Copy the string of dashes.

]         e# Wrap the entire stack in an array.
N'|+a37*  e# Repeat ["\n|"] 37 times.
.+        e# Perform vectorized concatenation.

13
ในช่วงเวลาสั้น ๆ ที่วิเศษมากฉันกำลังตีคุณอยู่
edc65

2
ไม่ใช่ทุกวันที่คุณเห็นใครบางคนเขียนโปรแกรม CJam 120 ไบต์นานเกินไป
lirtosiast

1
สิ่งที่ฉันชอบที่สุดคือวิธีที่คุณพบวิธีที่จะมี 6 ดาวในแต่ละบรรทัดจากนั้นกำจัดสิ่งที่คุณไม่ต้องการโดยธรรมชาติ
เลเวลริเวอร์เซนต์

@steveverrill: ฉันชอบที่มากเกินไป แต่ผมพบว่าบางสิ่งบางอย่างสั้น ...
เดนนิส

เย็น! (คุณทำสิ่งที่คล้ายกับรังผึ้งใช่ไหม) แต่ตอนนี้คุณต้องแก้ไขภาพซ้อนทับในคำอธิบายของคุณ
เลเวลริเวอร์เซนต์

27

Python 2, 113 ไบต์

for i in range(38):print i and"|"+["-"*57,(" *  "*7)[i%2*2:][:(i<11)*23].ljust(56,"  #"[i%3])+"|"][1<i<21]*(i<22)

การหั่นสตริงและโมดูโลตรวจสอบมากมาย


+1 น่าประทับใจมากก่อนหน้าทับทิมตอบฉัน 7 ไบต์ ทั้งคุณและ EDC65 นั้นล้ำหน้าเดนนิสในครั้งเดียวเหรอ? ว้าว!
เลเวลริเวอร์เซนต์

11
คำตอบของงูหลามที่แข่งขันกับคำตอบ cjam ช่างเป็นเวลาที่ยังมีชีวิตอยู่!
DJMcMayhem

3
ฉันชอบวิธีi=0พิมพ์ค่าของตัวเอง
xnor

8

Brainf ** k, 3355 3113 1598 1178 782 bytes

ภาษานี้คืออะไร

นี่คือเวอร์ชั่นปรับมือที่มี 28 ลูป ฉันคิดว่าฉันได้นำเรื่องนี้ไปให้ไกลที่สุด

นี่คือการทำงานที่ideone.com :

+++[>++++<-]>[>+++>+++>+++>++++++++++>+>++++<<<<<<-]>++++++>---->->>>.<--.
<++++.>>---.>+++++++[<........>-]<<.
<.<<<<+++++[>>.<.>..<<-]>>.<.>.<<++++[>>>........<<<-]>>>.>.>.
<.<<<<+++++[>>...<.<-]+++++[>>.......<<-]>>.>>.>.
<.<<<<++++++[>>.<.>..<<-]++++[>>........<<-]>>>>.>.
<.<<...<<+++++[>.>...<<-]++++[>>>........<<<-]>>>.>.>.
<.<<<<++++++[>>.<.>..<<-]++++[>>........<<-]>>>>.>.
<.<<<<+++++[>>...<.<-]+++++[>>.......<<-]>>.>>.>.
<.<<<<+++++[>>.<.>..<<-]>>.<.>.<<++++[>>>........<<<-]>>>.>.>.
<.<<<<+++++[>>...<.<-]+++++[>>.......<<-]>>.>>.>.
<.<<<<++++++[>>.<.>..<<-]++++[>>........<<-]>>>>.>.
>>>+++[<<<
<.>>>+++++++[<<<<........>>>>-]<<<.>.
>>++[<<
<.<<<<+++++++[>>........<<-]>>>>.>.
>>-]<<
>>>-]<<<
<.>>>+++++++[<<<<........>>>>-]<<<.>.
<.>>.>+++++++[<........>-]<<.
>>++++++++[<<<.>.<.>.>>-]

มันทำงานอย่างไร

 1: +++[>++++<-]>[>+++>+++>+++>++++++++++>+>++++<<<<<<-]>++++++>---->->>>.<--.
 2: <++++.>>---.>+++++++[<........>-]<<.
 3: <.<<<<+++++[>>.<.>..<<-]>>.<.>.<<++++[>>>........<<<-]>>>.>.>.
 4: <.<<<<+++++[>>...<.<-]+++++[>>.......<<-]>>.>>.>.
 5: <.<<<<++++++[>>.<.>..<<-]++++[>>........<<-]>>>>.>.
 6: <.<<...<<+++++[>.>...<<-]++++[>>>........<<<-]>>>.>.>.
 7: <.<<<<++++++[>>.<.>..<<-]++++[>>........<<-]>>>>.>.
 8: <.<<<<+++++[>>...<.<-]+++++[>>.......<<-]>>.>>.>.
 9: <.<<<<+++++[>>.<.>..<<-]>>.<.>.<<++++[>>>........<<<-]>>>.>.>.
10: <.<<<<+++++[>>...<.<-]+++++[>>.......<<-]>>.>>.>.
11: <.<<<<++++++[>>.<.>..<<-]++++[>>........<<-]>>>>.>.
12: >>>+++[<<<
13: <.>>>+++++++[<<<<........>>>>-]<<<.>.
14: >>++[<<
15: <.<<<<+++++++[>>........<<-]>>>>.>.
16: >>-]<<
17: >>>-]<<<
18: <.>>>+++++++[<<<<........>>>>-]<<<.>.
19: <.>>.>+++++++[<........>-]<<.
20: >>++++++++[<<<.>.<.>.>>-]

โปรแกรมนี้ใช้ตำแหน่งหน่วยความจำ 10 แห่ง:

0: loop counter #1
1: loop counter #2
2: "*"  ASCII 42
3: spc  ASCII 32
4: "#"  ASCII 35
5: "|"  ASCII 124
6: "\n" ASCII 10
7: "0"  ASCII 48, "-"  ASCII 45
8: loop counter #3
9: loop counter #4

บรรทัด 1

  • บรรทัดนี้ตั้งค่าอักขระ ASCII ในการลงทะเบียน 2 ถึง 7 (ส่วนใหญ่) การปรับแต่งบางอย่างจะทำในภายหลัง
  • รหัสนี้ทำให้ 3 อันดับแรกในการลงทะเบียน 0 แล้วลูป 3 ครั้ง incrementing ทะเบียน 1 +++[>++++<-]สี่ครั้งในแต่ละวง: ผลลัพธ์สุดท้ายคือการลงทะเบียน 0 คือ 0 และลงทะเบียน 1 คือ 12
  • 12 ถูกใช้เป็นตัวนับลูปสำหรับลูปถัดไป สำหรับ 12 ครั้งผ่านลูปการรีจิสเตอร์ 2, 3 และ 4 จะเพิ่มขึ้น 3 เท่ารีจิสเตอร์ 5 เพิ่มขึ้น 10 เท่ารีจิสเตอร์ 6 เพิ่มขึ้น 1 ครั้งและรีจิสเตอร์ 7 เพิ่มขึ้น 4 เท่า ในตอนท้ายของลูปนี้ประกอบด้วย: R2 (36), R3 (36), R4 (36), R5 (120), R6 (12), R7 (48) หลังจากลูปรีจิสเตอร์ 2 เพิ่มขึ้น 6 ครั้งรีจิสเตอร์ 3 จะลดลง 4 ครั้งและลงทะเบียน 4 จะลดลงหนึ่งครั้ง ณ จุดนี้ค่าคือ: R2 (42), R3 (32), R4 (35), R5 (120), R6 (12), R7 (48) ทั้งหมดยกเว้นการลงทะเบียน 5 และ 6 มีค่า ASCII เริ่มต้นของพวกเขา
  • ถัดไปลงทะเบียน 7 คือเอาท์พุท"0"ที่ด้านบนของธง!
  • รีจิสเตอร์ถัดไป 6 จะลดลงสองครั้งถึง 10 (บรรทัดใหม่ ASCII) และเอาต์พุต ทำกับบรรทัดแรกของการตั้งค่าสถานะ!

บรรทัด 2

  • ก่อนอื่นมันเพิ่มค่าลงทะเบียน 5 โดย 4 ซึ่งทำให้"|"(ASCII 124) และส่งออก
  • จากนั้นจะลดการลงทะเบียน 7 โดยสามเปลี่ยนจาก"0"(ASCII 48) เป็น"-"(ASCII 45) และส่งออก
  • ถัดไปใส่ 7 ลงในลูปเคาน์เตอร์ 3 (ลงทะเบียน 8) และวนซ้ำ 7 ครั้งเขียน 8 ขีดกลางแต่ละครั้งรวม 7 * 8 = 56 ขีดกลาง
  • ในที่สุดมันก็จบลงด้วยการแสดงบรรทัดใหม่

บรรทัดที่ 3

  • บรรทัดนี้มีสองลูป
  • ลูปแรกเขียน" * "5 ครั้ง
  • จากนั้นจึง" * "เขียน
  • ลูปที่สองวนซ้ำ 4 ครั้งเขียน 8 "#"รวมเป็น 32
  • จากนั้น"#", "|"และ"\n"มีการเขียน

บรรทัดที่ 4 - 11

  • เส้นเหล่านี้ใช้เทคนิคเดียวกับบรรทัดที่ 3 เพื่อเขียนดาวและลายเส้นของธง

บรรทัดที่ 12

  • บรรทัดนี้เริ่มการวนซ้ำที่ทำงาน 3 ครั้ง
  • ลูปสิ้นสุดที่บรรทัดที่ 17

บรรทัดที่ 13

  • เขียนแถบที่ข้ามธง
  • ใช้การวนซ้ำที่รัน 7 ครั้งเขียน"#"8 ครั้งในแต่ละครั้งผ่านการวนซ้ำ

บรรทัดที่ 14

  • จุดเริ่มต้นของการวนซ้ำที่รัน 2 ครั้ง

บรรทัดที่ 15

  • เขียนแถบที่ข้ามธง
  • ใช้การวนซ้ำที่รัน 7 ครั้งเขียน" "8 ครั้งในแต่ละครั้งผ่านการวนซ้ำ

บรรทัดที่ 16

  • จุดสิ้นสุดของวงด้านในที่เริ่มต้นที่บรรทัดที่ 14

บรรทัดที่ 17

  • จุดสิ้นสุดของวงนอกที่เริ่มต้นที่บรรทัดที่ 13

บรรทัดที่ 18

  • วาดแถบด้านล่างของธง

บรรทัดที่ 19

  • วาดเส้นขอบด้านล่างของธง

บรรทัดที่ 20

  • วาดเสาธง
  • "|"วนซ้ำ8 ครั้งเขียนและขึ้นบรรทัดใหม่สองครั้งในแต่ละรอบ

2
คุณสามารถบีบอัดธงได้จริง ๆ ! ฉันหวังว่าคุณจะโพสต์คำอธิบายเมื่อคุณเล่นกอล์ฟเสร็จแล้ว ฉันอยากจะรู้ว่ามันทำงานอย่างไร
Dennis

ฉันจะโพสต์คำอธิบาย ฉันยังเล่นกอล์ฟอยู่!
vacawama


7

JavaScript ( ES6 ), 153 156

ใช้สตริงแม่แบบมี 1 บรรทัดใหม่ที่มีความสำคัญและนับ

ทดสอบการเรียกใช้ตัวอย่างด้านล่าง (เป็น EcmaScript 6, Firefox เท่านั้น)

// TEST - Just for testing purpose,redefine console.log

console.log = (...x) => O.innerHTML += x+'\n'

// SOLUTION

o=[0];for(o[r=1]=o[21]='-'[R='repeat'](57);++r<21;o[r]=" *  "[R](7).substr(r%2*2,r<11&&23)+'  #'[r%3][R](r<11?33:56)+'|')o[37]='';console.log(o.join`
|`)
<pre id=O></pre>

เพื่อความรักชาติมากยิ่งขึ้นนี่คือรุ่น EcmaScript 5

// TEST - Just for testing purpose,redfine console.log

console.log = function(x){ O.innerHTML += x+'\n' }

// SOLUTION - 175 bytes

for(o=(A=Array)(38),o[0]=0,r=2;r<21;r++)o[r]=A(8)[J='join'](" *  ").substr((r&1)*2,r<11?23:0)+A(r<11?34:57)[J]('  #'[r%3])+'|';
o[1]=o[r]=A(58)[J]('-'),console.log(o[J]('\n|'))
<pre id=O></pre>


4
+1 สำหรับการโทร ES5 ผู้รักชาติมากขึ้น
Pete TNT

6

Ruby, 104 102 ไบต์

การใช้แนวคิดจากคำตอบ Ruby ของ ManAtWork โดยได้รับอนุญาต

puts 0,s=?|+?-*57,(0..18).map{|i|?|+("#  "[i%3]*(i>8?56:33)).rjust(56," *   *"[i%2*2,4])+?|},s,'|
'*16

Ruby, 127 121 112 ไบต์

เปลี่ยนเครื่องหมายคำพูดเป็น?อาร์เรย์ที่ใช้แทนเงื่อนไขสำหรับสีแถบ ใช้เงื่อนไขแทนสูตรสำหรับความยาวแถบ

puts 0,s=?|+?-*57
19.times{|i|puts ?|+("#  "[i%3]*(i>8?56:33)).rjust(56,i%2>0?"   *":" *  ")+?|}
puts s,"|\n"*16

เคล็ดลับที่นี่คือการวาดลายเส้น (ทั้งสีแดง / #และสีขาว / space) ให้มีความยาวที่ถูกต้องจากนั้นปรับชิดขวากับดาว ทับทิมrjustช่วยให้เราสามารถระบุสตริง padding ซึ่งสลับระหว่างและ" * "" *"

รุ่นดั้งเดิม 127 ไบต์

puts 0,s="|"+"-"*57
19.times{|i|puts("|"+((i%3>0?" ":"#")*((i+1)/10*23+33)).rjust(56,i%2>0?"   *":" *  ")+"|")}
puts s,"|\n"*16

โอ๊ะฉันลืมโหลดหน้าซ้ำก่อนที่จะตรวจสอบว่ามีคำตอบทับทิมอยู่แล้ว เนื่องจากคำตอบของฉันไม่แตกต่างกันมากฉันจึงลบออก รู้สึกอิสระที่จะใช้ส่วนที่ดีที่คุณอาจพบในมัน
จัดการ

@ การทำงานฉันไม่เห็นว่าคุณต้องลบมันมันสั้นกว่าของฉันและฉันได้ upvoted แล้ว มีกลเม็ดทับทิมอยู่ที่นั่นฉันไม่รู้ฉันใหม่กับทับทิม ฉันลงเหลือ 104 คนโดยใช้คำตอบที่ดีที่สุดทั้งคู่ซึ่งเป็นคำตอบที่สั้นที่สุดในภาษาทั่วไป ผมไม่เข้าใจว่าทำไมฉันสามารถใช้mapในช่วงกลางของแต่ฉันไม่สามารถใช้งานได้ด้วยตัวของมันเองแม้ว่าฉันล้อมรอบด้วยวงเล็บ:puts puts((0.18).map{})หากคุณเห็นการปรับปรุงเพิ่มเติมใด ๆ โปรดแจ้งให้เราทราบหรือยกเลิกการลบคำตอบของคุณเองและโพสต์ไว้ที่นั่น
เลเวลริเวอร์เซนต์

ฉันประทับใจที่ทับทิมrjustสามารถใช้สายและไม่เพียงถ่าน แย่เกินไป Python ไม่สามารถทำเช่นนั้นได้ ...
Sp3000

3

SWI-Prolog, 275 ไบต์

ในภาษาที่มีต้นกำเนิดจากภาษาฝรั่งเศสซึ่งเป็นชนิดที่เหมาะสม

a:-put(48),nl,b,c(0).
b:-z,w(-,57).
c(I):-nl,I=36;J is I+1,(I=19,b,c(J);I>19,z,c(J);I>8,z,(I mod 3=:=0,w(#,56);tab(56)),z,c(J);z,(I mod 2=:=0,tab(1),w('*   ',5),put(42),tab(1);w('   *',5),tab(3)),(0=:=I mod 3,w(#,33);tab(33)),z,c(J)).
z:-put(124).
w(A,B):-writef('%r',[A,B]).

ดูผลลัพธ์ที่นี่


ฉันเกลียดที่จะทำลายคำตอบที่มีอยู่ แต่รุ่นแรกมี 11 แถบแทน 13 ฉันไม่ได้เปลี่ยนแปลงอะไรเลย คุณสามารถตรวจสอบประวัติการแก้ไขเพื่อดูสิ่งที่ฉันเปลี่ยนแปลง ขอโทษสำหรับเรื่องนั้น.
DJMcMayhem

@DJMcMayhem คงที่จำเป็นเท่านั้นที่จะเปลี่ยนตัวเลขสองและการเปลี่ยนแปลงไม่ได้ความยาวของคำตอบจึงจะดีทั้งหมด
Fatalize

1

C, 235 211 208 205 203 198 197 186 ไบต์

i;x(){for(puts("0");i<37;i++){char b[58]="";i<21?memset(b,i%20?i%3&1?35:32:45,56),i&&i<10?memcpy(b," *   *   *   *   *   *   "+(i%2?0:2),23):0,b[56]=i%20?124:45:0;printf("|%.57s\n",b);}}

แก้ไข: เพิ่มคำแนะนำของ Cool Guy และใช้ประโยชน์จาก: เพื่อแทนที่คำสั่ง if

แก้ไข: ลบการป้องกันโอเวอร์โฟล \ 0 และใช้ตัวจำกัดความยาวสตริงใน printf แทน

แก้ไข: ทำใหม่ทั้งเงื่อนไข memset

แก้ไข: ย้ายทำให้ ("0") ภายในสำหรับส่วนหัวเพื่อลบเครื่องหมายอัฒภาค

แก้ไข: refactoring เล็กน้อยเพื่อรับ 11 ไบต์เพิ่มเติม


ดีครั้งแรก แต่ตอนนี้ดูเหมือนจะไม่พิมพ์|ที่เริ่มต้นของทุกสาย ...
Spikatrix

รหัสของคุณใน 198 ไบต์:i;c(){puts("0");for(;i<37;i++){char b[58]="|";if(i<21){memset(b,!((i-1)%3)?35:32,56);if(i<10)memcpy(b," * * * * * * "+((i%2)?0:2),23);b[56]='|';}if(!i||i==20){memset(b,45,57);}puts(b);}}
Spikatrix

@Cool Guy: ขอบคุณสำหรับการจับ ฉันลืมย้าย '|' กลับไปที่ printf ที่สองจาก initializer ฉันพยายามเรียกใช้รหัสของคุณโดยใช้ GCC ภายใต้ Cygwin แต่การจัดรูปแบบถูกปิด มีอะไรเป็นพิเศษที่ฉันต้องทำเพื่อเรียกใช้หรือตั้งค่าสถานะใด ๆ ที่ต้องการในเวลารวบรวม?
openaddr

ไม่จำเป็นต้องมีการตั้งค่าสถานะพิเศษ ทดสอบที่นี่เล่นกอล์ฟให้มากขึ้นโดยใช้45แทน'-'และ35แทน'#'และ32แทน' '
Spikatrix

@Cool Guy: ข้อเสนอแนะที่ดีเกี่ยวกับค่าการเข้ารหัสอักขระ และจับได้ดีเมื่อฉัน == 0 ฉันมองข้าม ฉันคิดว่ารหัสเริ่มต้นของคุณไม่ทำงานเนื่องจากการใส่ครั้งที่สอง () แต่นั่นเป็นความผิดพลาดบางส่วนของฉันเพราะการลืมเปลี่ยนตำแหน่ง "|" กลับทำให้ดูเหมือนว่าบัฟเฟอร์มีสตริงทั้งหมด รหัสในลิงก์ที่คุณระบุโดยใช้ printf ในตอนท้ายใช้งานได้แล้ว
openaddr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.