Как я могу создать 77 файлов, содержимым которых является имя каждого файла? - PullRequest
1 голос
/ 01 мая 2009

Давайте рассмотрим пример. Файл «file1» имеет содержимое «file1», его собственное имя. Файл «file2» имеет содержимое «file2», опять же его собственное имя. Шаблон продолжается, пока мы не покрыли 77 файлов. Какой самый простой способ сделать 77 файлов?

Поскольку мне, как правило, трудно компилировать, я подвожу некоторые детали.

Инструкции по компиляции кодов

РАЗРЕШЕНИЯ: "chmod 700 filename.some_ending"

RUNNING: "./filename.some_ending"

Как скомпилировать?

  1. Используйте gcc для C ++ / C, например "gcc filename.c", а затем запустите "./a.out"
  2. Используйте javac для Java, например «javac filename.javac», а затем запустите его с «java class» (ошибка?!)
  3. Fortran?
  4. ... больше?

Ответы [ 12 ]

19 голосов
/ 01 мая 2009
#!/bin/bash
for i in {1..77}
do
   echo file$i > file$i
done
6 голосов
/ 01 мая 2009

Python:

for i in range(1,78): open("file" + str(i), "w").write("file" + str(i))
4 голосов
/ 01 мая 2009

C

#include <stdio.h>

int main() {
    char buffer[8];
    FILE* f;
    int i;
    for(i = 1; i <= 77; i++){
        sprintf(buffer, "file%d", i);
        if((f = fopen(buffer, "w")) != NULL){
            fputs(buffer, f);
            fclose(f);
        }
    }
    return 0;
}
4 голосов
/ 01 мая 2009

C ++:

#include <sstream>
#include <fstream>

using namespace std;

int main()
{
     for (int i = 1; i <= 77; i++) {
          stringstream s;
          s << "file" << i;
          ofstream out(s.str().c_str());
          out << s.str();
          out.close();
     }
     return 0;
}
3 голосов
/ 01 мая 2009

Я добавил расширение, предполагая, что файл будет иметь его.

Fortran:

character(11) file_name
do i=1,77
  write(file_name,"('file',i2.2,'.txt')")i
  open(unit=1, file=file_name, status='replace')
  write(1,"(a)")file_name
  close(unit=1)
enddo
end
3 голосов
/ 01 мая 2009

Perl:

#!/usr/bin/env perl
for ( my $i = 1; $i <= 77; ++$i )
{
    open( my $fh, '>', 'file' . $i );
    print { $fh } ( 'file' . $i );
    close( $fh );
}
3 голосов
/ 01 мая 2009

Java-версия, для развлечения.

import java.io.*;

public class HA {
    public static void main(String[] args) throws Exception {
        String file = "file";
        for (int i = 1; i <= 77; i++){
            PrintStream out = new PrintStream(new File(file + i));
            out.print(file + i);
            out.close();
        }
    }
}
2 голосов
/ 01 мая 2009

Python-версия для тех, кто предпочитает читать более кратко:

filenames = ("file%(num)d" % vars() for num in range(1, 78))
for filename in filenames:
    open(filename, 'w').write(filename)
1 голос
/ 01 мая 2009

Delphi / Free Pascal

program Create77Files;

{$APPTYPE CONSOLE}

uses
  Classes, SysUtils;

var
  I: Integer;
  S: string;
begin
  for I := 1 to 77 do
  begin
    S:= 'file' + IntToStr(I);
    with TStringStream.Create(S) do
    begin
      SaveToFile(S);
      Free;
    end;
  end;
end.
1 голос
/ 01 мая 2009

Ruby:

77.times { |i| File.open("file#{i+1}", "w") { |f| f.puts "file#{i+1}" } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...