我们举一个例子。 “file1”文件具有内容“file1”,它自己的名称。 “file2”文件的内容为“file2”,也是其自己的名称。该模式一直持续到我们覆盖77个文件为止。这77个文件最简单的方法是什么?
由于我在编译方面往往很难,所以我总结了一些细节。
介绍如何编译代码
PERMISSIONS:“chmod 700 filename.some_ending”
RUNNING:“../ filename.some_ending”
如何编译?
答案 0 :(得分:19)
#!/bin/bash
for i in {1..77}
do
echo file$i > file$i
done
答案 1 :(得分:6)
的Python:
for i in range(1,78): open("file" + str(i), "w").write("file" + str(i))
答案 2 :(得分:4)
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 :(得分:4)
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 :(得分:3)
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();
}
}
}
答案 5 :(得分:3)
的Perl:
#!/usr/bin/env perl
for ( my $i = 1; $i <= 77; ++$i )
{
open( my $fh, '>', 'file' . $i );
print { $fh } ( 'file' . $i );
close( $fh );
}
答案 6 :(得分:3)
我添加了扩展名,假设文件已经存在。
的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
答案 7 :(得分:2)
Python版本适合那些喜欢可读性的人:
filenames = ("file%(num)d" % vars() for num in range(1, 78))
for filename in filenames:
open(filename, 'w').write(filename)
答案 8 :(得分:1)
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();
}
}
}
}
答案 9 :(得分:1)
红宝石:
77.times { |i| File.open("file#{i+1}", "w") { |f| f.puts "file#{i+1}" } }
答案 10 :(得分:1)
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.
答案 11 :(得分:0)
Groovy的:
77.times{n->n++;new File('file'+n).withWriter{it.writeLine('file'+n)}}