파일 작성 및 작성


11

도전

새 파일을 작성하고 문자열 Hello World을 작성하십시오.

제한 사항

  • 과제는 파일 시스템의 디스크에있는 파일에 기록해야합니다.

  • 파일이 통역사의 정상 작동 중에 생성 된 로그 파일이 아닐 수 있습니다.

  • 파일은 문자열 포함해야합니다 Hello World. 후행 줄 바꿈 또는 최소 공백을 포함 할 수 있습니다. 다른 내용은 없습니다.

  • 프로그램 실행에 필요한 경우를 제외하고 명령 줄 플래그 / 파이프 등은 허용되지 않습니다. (예를 들어 perl -p)

메모

  • 이것은 이므로 바이트 단위의 가장 짧은 프로그램이 승리합니다.

  • 규칙이 아닌 문자의 정신을 따르십시오.


후행 개행은 괜찮습니까?
Winny

@Winny 네, 괜찮습니다
dkudriavtsev

파일 이름이 파일 내용의 일부입니까?
CousinCocaine

답변:


1

Pyth, 14 바이트

.w"Hello World

라는 파일로 출력합니다 o.txt.


24

파이썬 2, 32 바이트

print>>open(*"ww"),"Hello World"

예, 이것은 유효한 python 입니다.


1
우와 설명?
James

1
@DrGreenEggsandIronMan 주요 트릭 방법처럼 보이는 *함수에서 개별 인수로의 반복 가능한 분할 할 수 있습니다, 그래서 open(*"ww")된다 open("w","w").
밸류 잉크

7
@ValueInk 실제로 주요 트릭은 거의 보이지 않는 확장 된 인쇄 문을 사용하는 것입니다.
xsot

1
그것은 참으로 멋진 트릭이지만, 당신이 없었다면 *"ww"사용하여 여기에 다른 파이썬 대답으로 묶여 트릭 you'd've, open(...).write(...)동일한 바이트 수 대신
값 잉크

죄송합니다.
xsot




5

배치, 18 바이트

echo Hello World>f

나는 당신이 필요하다고 생각 @하거나 (콘솔)로 제목을 다시 붙입니다.
Outgolfer Erik

@필요하지 않습니다.
Shaun Wild

배치 파일로 저장하고 그대로 실행하십시오 (명령을 직접 입력하지 않음). 그러면 @명령이 인쇄되기 때문에을 필요로하는 것을 볼 수 있습니다. 즉, 두 가지 옵션이 있습니다. 1)이 답변은 속지 않으므로 삭제합니다. 2) 레이블을 (콘솔)로 바꿉니다.
Outgolfer Erik

5

Vim, 15 + 2 == 17 바이트

iHello World<esc>ZZ

vim f대신에 이것을 시작하기 위해 +2 바이트 vim. 또한이 버전은 다음 작업을 수행합니다.

iHello World<C-o>ZZ

이와 같은 vim 실행이 허용되지 않는 경우 다음도 있습니다.

Vim, 18 바이트

iHello World<esc>:w f<cr>

참고 사항 : 이것은 폴리 글롯입니다. V가 1 바이트 더 짧다는 것을 제외하고는 V에서도 동일하게 작동합니다 <cr>.


마지막에`f <cr>`는 무엇입니까?
Zwei

@Zwei 'f'는 파일 이름이며 <cr>명령을 실행하려면 ( "enter"의 단일 니모닉, 단일 바이트) 필요합니다. 콜론으로 시작하는 명령 :w은 vim 내부의 미니 쉘과 비슷하며 명령 은 파일에 쓰는 명령입니다.
James

완전히 입력해야하기 때문에 <esc>5 바이트와 <cr>4 로 계산 해서는 안 됩니까?
Bart van Nierop 5

@BartvanNierop 아니, <esc>이다 "Esc 키"단지 표기법 0x1B하고 <cr>있다 "캐리지 리턴 키"에 대한 표기이다0x0B
제임스

1
우선 , keystrokes == bytes로 vim의 점수매기 는 선례가 있지만, 두번째로, vim 키 표기법을 사용하지 않고 vim "code"로 이것을 쓰는 몇 가지 방법이 있습니다. 예를 들어 <C-v>리터럴 이스케이프 문자와 리터럴 캐리지 리턴을 삽입하는 데 사용 하면 이러한 모든 스트로크를 매크로에 할당하여 실행할 수 있습니다. vimscript로 입력 할 수있는 것이 아니라 normal 'iHello World^[:w f^Mvim이 표시 하는 방식 으로 vimscript로 수행 할 수도 있습니다. ^[그리고 ^M둘 다 1 바이트입니다.
James


3

C, 44 바이트

main(){fputs("Hello World",fopen("o","w"));}

1
이것은 일부 시스템에서 segfault를하지 않을 것입니다#include <stdio.h>
Steven Penny

@StevenPenny segfault를 보장하지 않는 시스템 / 컴파일러가있는 한 괜찮습니다. 답변은 일반적으로 이식성이 없어도됩니다.
Martin Ender


3

PowerShell, 15 바이트

"Hello World">o

>문자열을 o현재 디렉토리에서 호출 된 파일로 리디렉션합니다 .



2

ed, 19 자

i
Hello World
.
w o

샘플 실행 :

bash-4.3$ ed <<< $'i\nHello World\n.\nw o'
12

bash-4.3$ cat o
Hello World

2

MATL , 15 바이트

'Hello World'Z#

이렇게하면 파일이 생성 inout되고 문자열 이 작성 됩니다.


2

K, 20 바이트

    `:f 0:,"Hello World"
    `:f

확인;

    mmm@chromozorz:~/q$ cat f.txt 
    Hello World

아직 아무도 말하지 않았으므로 Programming Puzzles & Code Golf에 오신 것을 환영합니다.
Outgolfer Erik

매우 감사!
Chromozorz

확인. 나는 또한 당신에게 여분의 공백이 있다고 생각합니다. 원하는 경우 공백을 편집합니다 (의도적으로 배치되었는지는 모르겠지만 의도하지 않은 것으로 생각합니다.)
Erik The Outgolfer

2

클로저, 23 바이트

#(spit"x""Hello World")

라는 파일을 생성 익명 기능 x및 쓰기 Hello World가.


2

Node.js, 42 바이트

require("fs").writeFile('o','Hello World')

나는 이것이 설명이 필요하지 않다고 생각한다

Node.js REPL, 31 바이트

fs.writeFile('o','Hello World')

어떤 이유로 repl에 포함시킬 필요가 없습니다. fs


나는 이것이 효과가 있다고 생각하지 않습니다. 작동하려면이 필요합니다 require("fs").writeFile("o","Hello World"). 그렇지 않으면 fs가 포함되지 않습니다.
코너 오브라이언

@ CᴏɴᴏʀO'Bʀɪᴇɴ huh ok. 어떤 이유로 REPL에서 작동
Downgoat

2

씨#, 93 77 76 바이트

using System.IO;namespace N{class C{static void M(){File.WriteAllText("f", "Hello World");}}}

class C{static void Main(){System.IO.File.WriteAllText("f", "Hello World");}}

class C{static void Main(){System.IO.File.WriteAllText("f","Hello World");}}

무단 파일 액세스를 제외 하고 작동하는지 확인하십시오 .

변경 로그

Rev2

  • 불필요한 네임 스페이스 제거
  • 기능 이름을 Main으로 변경했습니다. 그렇지 않으면 기본 기능으로 감지되지 않기 때문입니다.
  • using지침 삭제 ( Jean Lourenço 감사 )

Rev3

  • 몰래 들어간 공간을 제거했습니다.

C # (보일러 플레이트 없음), 47 바이트

void M(){File.WriteAllText("f","Hello World");}

사용을 제거하고 메소드에 직접 추가하여 일부 바이트를 저장할 수 있습니다. System.IO.File.WriteAllText [...]
Jean Lourenço

@ JeanLourenço 감사합니다. 나는 원래 그것을 가지고 있었고 알 수없는 이유로 변경했습니다.
Bart van Nierop

2

R, 38 36 35 바이트

sink(" ");cat("Hello World");sink()

생성 된 파일에 이름이없는 방법이 마음에 듭니다. 그것은 단지 .txt사실 아무것도!

@PEAR 비고 덕분에 -2 바이트! @BartvanNierop 덕분에
-1 바이트!

이 코드는 이름이없는 파일을 생성합니다.


1
'.txt'가 정말로 필요한가요? 파일 엔딩은 사용자를위한 것입니다. 하나의 문자만으로도 충분할 것입니다.
PEAR

1
R을 모르지만 @PEAR의 제안에 따라 단순히 파일 이름을 지정하여 다른 바이트를 면도 할 수 "a"없습니까?
Bart van Nierop 5


1

파이썬, 34 바이트

open("h","w").write("Hello World")

라는 파일로 출력합니다 h.


1

APLX , 15 바이트

'Hello World'1

하나의 구성 요소 만 포함하는 APL 구성 요소 파일을 작성합니다. 원하는 문자열 다음과 같이 다시 읽을 수 있습니다.

      'Hello World'1
Hello World

1

Gema, 28 자

\A=@write{o;Hello World}@end

샘플 실행 :

bash-4.3$ gema '\A=@write{o;Hello World}@end'

bash-4.3$ cat o
Hello World

1

라켓, 43 바이트

(display"Hello World"(open-output-file"f"))

1

줄리아, 47 바이트

f=open("o","w");write(f,"Hello World");close(f)

을 사용해 writedlm보았지만 효과가 없었습니다.




1

자바 7, 100 95 바이트

void f()throws Exception{java.io.Writer p=new java.io.PrintWriter("x");p.print("Hello World");}

또는 사용 후 라이터를 닫으려면 ( 101 바이트 ) :

void f()throws Exception{try(java.io.Writer p=new java.io.PrintWriter("x")){p.print("Hello World");}}

언 골프 드 :

class Main{
  static void f() throws Exception{
    try(java.io.Writer p = new java.io.PrintWriter("x")){
      p.print("Hello World");
    }
  }

  public static void main(String[] a){
    try{
      f();
    } catch(Exception ex){
    }
  }
}

용법:

java -jar Main.jar

자바는 내가 가장 좋아하는 언어이지만 예수 그리스도 그것은 골프 언어가 얼마나 나쁘다는 지 재미있다
Shaun Wild

4
@AlanTuning 참으로. xD 저는 직장에서 Java를 사용하고 있으며 Java로 코드 골프를하는 것은 재미 있습니다. Java를 사용하여 코드 골프 도전을 이길 수는 없지만 Java 코드를 가능한 한 짧게 작성하는 것은 여전히 ​​재미 있습니다.
Kevin Cruijssen

2
음, 당신은 할 수 있습니다void f()throws Exception{new java.io.PrintWriter("x").print("Hello World");}
cliffroot

java.io.Writer p=new java.io.PrintWriter더 많은 캐릭터를 저장합니다.
Frozn

@ cliffroot 흠, 처음에 시도했지만 디스크에 아무것도 쓰지 않는 것 같습니다. 내일 다시 시도 할 것입니다. 현재 IDE가 없으며 파일 I / O가 IDE에서 작동하지 않습니다.
Kevin Cruijssen

1

eacal , 26 바이트

write a string Hello World

writesa string Hello Worldto file a은 존재하지 않는 경우 작성합니다. 원래:

write <fileName> <exec>

string <params to convert to string>

다음과 같이 프로그램을 실행하십시오.

λ node eacal.js writeFile

1

J, 21 바이트

'Hello World'1!:3<'o'

이것은 o현재 디렉토리 의 파일 또는 파일 에서 호출되지 않은 경우 파일에 기록합니다 j64-804. 1!:3쓰기 외부 <'o'파일이며, 박스 파일 이름입니다 (파일 이름은 박스 여야 함). LHS는 쓸 문자열입니다.


1

자바 스크립트, 89 바이트

이 코드는 Chrome에서 테스트되었습니다. 다른 브라우저에서는 click 메소드가 작동하려면 요소가 문서에 있어야합니다.

a=document.createElement("a");a.href="data:text/plain,Hello World";a.download=1;a.click()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.