代码之家  ›  专栏  ›  技术社区  ›  Peter

如何创建77个文件,其中的内容是每个文件的名称?

  •  1
  • Peter  · 技术社区  · 6 年前

    让我们举个例子。“file1”-文件有一个内容“file1”,即它自己的名称。“file2”-文件有一个内容“file2”,也就是它自己的名称。这种模式一直持续到我们涵盖了77个文件。处理77个文件最简单的方法是什么?

    由于我在编译方面比较困难,我总结了一些细节。

    说明如何编译代码

    权限:“chmod 700文件名。某些\u结尾”

    正在运行:“../filename.some\u结尾”

    1. 对C++/C使用gcc,如“gcc filename.C”,然后运行“./a.out”
    2. 对Java使用javac,比如“javac filename.javac”,然后用“Java类”运行它(错误?!)
    3. Fortran?
    4. ... 更多
    12 回复  |  直到 16 年前
        1
  •  19
  •   Dave    16 年前
    #!/bin/bash
    for i in {1..77}
    do
       echo file$i > file$i
    done
    
        2
  •  6
  •   erik    16 年前

    蟒蛇:

    for i in range(1,78): open("file" + str(i), "w").write("file" + str(i))
    
        3
  •  4
  •   Ankit    16 年前

    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;
    }
    
        4
  •  4
  •   Gautier Hayoun    16 年前

    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;
    }
    
        5
  •  3
  •   jjnguy Julien Chastang    16 年前

    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();
            }
        }
    }
    
        6
  •  3
  •   eternaleye    16 年前

    Perl:

    #!/usr/bin/env perl
    for ( my $i = 1; $i <= 77; ++$i )
    {
        open( my $fh, '>', 'file' . $i );
        print { $fh } ( 'file' . $i );
        close( $fh );
    }
    
        7
  •  3
  •   Rook    16 年前

    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
    
        8
  •  2
  •   bignose    16 年前

    Python版本适用于那些喜欢可读而不喜欢简洁的人:

    filenames = ("file%(num)d" % vars() for num in range(1, 78))
    for filename in filenames:
        open(filename, 'w').write(filename)
    
        9
  •  1
  •   Julian Melville    16 年前

    C#,为什么不:

    using System.IO;
    
    namespace FileCreator
    {
        class Program
        {
            static void Main(string[] args)
            {
                for (int i = 1; i <= 77; i++)
                {
                    TextWriter f = new StreamWriter("file" + i);
                    f.Write("file" + i);
                    f.Close();
                }
            }
        }
    }
    
        10
  •  1
  •   2 revs, 2 users 80%<br/>jf&#13; &#13;    16 年前

    红宝石:

    77.times { |i| File.open("file#{i+1}", "w") { |f| f.puts "file#{i+1}" } }
    
        11
  •  1
  •   Cesar Romero    16 年前

    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.
    
        12
  •  0
  •   Marco Martinelli    12 年前

    Groovy:

    77.times{n->n++;new File('file'+n).withWriter{it.writeLine('file'+n)}}