Chương trình của bạn:
Bạn sẽ viết hai chương trình (cả hai cùng một ngôn ngữ). Chương trình lưu trữ lấy một chuỗi từ STDIN và lưu nó ở đâu đó liên tục (xem bên dưới) và sau đó thoát mà không có lỗi. Chương trình truy xuất không có đầu vào, lấy chuỗi được lưu trữ và in nó thành STDOUT.
Thử nghiệm khách quan về tính bền bỉ:
Bạn sẽ có thể chạy chương trình lưu trữ trên máy cục bộ của mình, sau đó cấp nguồn cho máy cục bộ của bạn, sau đó gọi chương trình truy xuất trên máy cục bộ của bạn. Bạn có thể bỏ chuỗi theo cách bạn muốn (ngay cả trên web) miễn là bạn vượt qua bài kiểm tra khởi động lại này.
Các trường hợp thử nghiệm:
Lưu trữ sau đó truy xuất:
echo foo | Store
Retrieve
foo
Cửa hàng lặp lại sẽ ghi đè (như phương thức set ()):
echo foo | Store
echo bar | Store
Retrieve
bar
Lặp lại truy xuất là không phá hủy (như phương thức get ()):
echo foo | Store
Retrieve
foo
Retrieve
foo
Truy xuất trước bất kỳ yêu cầu lưu trữ nào:
Bạn không cần phải lo lắng về điều này. Chương trình truy xuất của bạn có thể cho rằng chương trình lưu trữ đã được chạy tại một số điểm trong quá khứ.
Linh hoạt đầu vào / đầu ra.
Mọi người đã yêu cầu tôi mở rộng điều này từ STDIN / STDOUT nghiêm ngặt sang các quy tắc IO tiêu chuẩn. Tôi không thể bởi vì nó sẽ giới thiệu quá nhiều sơ hở. Một số tùy chọn IO tiêu chuẩn đã có đầu vào được lưu trữ một cách liên tục, ví dụ: "các chương trình có thể lấy đầu vào từ một tệp". Tôi muốn linh hoạt hơn là chỉ STDIN và STDOUT nghiêm ngặt, nhưng không mở lũ.
Từ chuỗi quy tắc IO tiêu chuẩn, tôi chọn những thứ không phá vỡ thử thách:
Các chương trình có thể nhận đầu vào thông qua lời nhắc GUI và lời nhắc dòng lệnh nếu bạn muốn
Các chương trình có thể xuất ra bằng cách hiển thị nó trên màn hình Điều này bao gồm các hộp thoại GUI
Các chương trình có thể nhận đầu vào thông qua các đối số dòng lệnh
Các chương trình có thể xuất ra STDERR nhưng thực tế vẫn không thể đưa ra lỗi.
Nếu bạn sử dụng thay thế, nó phải tương tác với người dùng. Người dùng không cần phải thực hiện bất kỳ công việc nào khác ngoài việc đưa đầu vào của họ vào chương trình của bạn, nhập nó vào một dấu nhắc mà chương trình của bạn cung cấp hoặc nhập dữ liệu dưới dạng một dòng lệnh của chương trình của bạn. Người dùng không cần phải làm gì khác hơn là chạy chương trình truy xuất của bạn để xem đầu ra được hiển thị trên màn hình hoặc được gửi đến STDOUT hoặc STDERR.
Giả định được phép:
- Hai chương trình của bạn sẽ được chạy trong cùng một thư mục
- Các chương trình của bạn có quyền đọc-ghi cho thư mục đó
- Các tệp bạn tạo sẽ tồn tại khi khởi động lại (không phải trong thư mục tạm thời)
- Một dòng mới không phải là một phần của chuỗi được cho phép. Không có khoảng trắng khác
Đây là môn đánh gôn và điểm của bạn là tổng số byte của cả hai chương trình.
Store
?
echo $@>x
vàcat x
có hợp lệ không?