2012-12-16 28 views
5

Tôi muốn mã hóa các tập dữ liệu lớn (các dãy số nguyên có độ dài khác nhau, thư viện chuỗi văn bản, v.v.) trực tiếp thành tệp thi hành, do đó không có tệp bổ sung nào.Mã hóa cứng dữ liệu lớn được đặt thành có thể thực thi?

Câu hỏi của tôi là, phương pháp thiết thực và có tổ chức nhất để thực hiện việc này trong C++ là gì? Tôi sẽ đặt dữ liệu ở đâu, về đầu trang hoặc tệp nguồn? Tôi nên sử dụng cấu trúc nào?

Tôi nhận thấy đây không phải là cách được chấp nhận để xử lý dữ liệu. Nhưng tôi hài hước!

+0

Đã thấy điều này trên SO trước khi ... tìm kiếm. – djechlin

+0

thử đặt nó vào một tệp .cpp khác, ví dụ: 'resources.cpp', sau đó đặt nó thành' extern' và đặt cho nó một tệp tiêu đề. –

+0

http://stackoverflow.com/questions/410980/include-a-text-file-in-a-c-program-as-a-char liên quan, không chính xác những gì tôi đang tìm kiếm. – djechlin

Trả lời

8

Đối với cả C++ và C, bạn có thể sử dụng tệp tiêu đề để đặt khai báo cho các biến này và sau đó đặt mã khởi tạo thực tế vào tệp .c (hoặc .cc). Cả C và C++ đều có cú pháp khởi tạo tốt. Ví dụ:

mydata.h:

extern int x; 
extern int a[10]; 
extern unsigned char *s; 

mydata.c:

#include "mydata.h" 
int x = 123; 
int a[10] = {1,2,3,4,5,6,7,8,9,10}; 
unsigned char *s = "mystring"; 

sau đó main.c sẽ có:

#include "mydata.h" 
#include <stdio.h> 

int main(const int argc, char *argv[]) 
{ 
    printf("%d, %d, %s\n", x,a[5],s); 
} 

chạy thử trông như thế này:

$gcc -o main main.c mydata.c 
$ ./main 
123, 6, mystring 

Bây giờ, để thực sự được tổ chức, người ta sẽ viết kịch bản Perl/Python/PHP để tạo các tệp được định dạng như vậy từ nguồn dữ liệu của bạn, như cơ sở dữ liệu SQL của tệp CSV.

Các vấn đề liên quan