私は、このプログラムは、コマンドライン引数、私はコマンドライン引数の代わりにランタイム入力をしたい、それを行うには?
などを取る
int main(int argc, char *argv[])
{
//################################
// Variables
//################################
// common
int num_of_params; // number of command-line parameters
// related to files
//string data_filename;
char data_filename[CHUNK_BUF_SIZE]; // input file path
int data_filesize = 0; // data file size
// related to chunks
int fd; // file descriptor to check boundary
int size; // size of input data
unsigned char *buf; // input data
int offset = 0; // file offset
int chunk_b_pos = 0 ; // beginning position of a chunk in a file
int chunk_e_pos = -1; // ending position of a chunk in a file
// *** NOT 0 ** due to "set_breakpoint() in chunk_sub.c"
//
int cur_chunk_size = 0; // !!!! Accumulated chunk size !!!!
// This value is compared to minimum chunk size and maximum chunk size
int chunk_index_fd; // file which contains chunk indexes for a document
char chunk_index_filepath[CHUNK_BUF_SIZE]; // chunk index file path
// parameters
int avg_chunk_size; // expected averge chunk size
int min_chunk_size; // minimum chunk size
int max_chunk_size; // maximum chunk size
// temporary command
char cmd[CHUNK_BUF_SIZE];
int num_of_breakpoints = 0;
//################################
// Check parameters
//################################
// get number of command-line parameters
num_of_params = argc - 1;
if (num_of_params != 4)
{
printf("usage : %s <input file> <expected avg chunk size> <min chuk size> <max chunk size>\n",
argv[0]);
printf("e.g. %s body 8192 2048 65535\n", argv[0]);
printf("*** try to change 1024 to 2048, 4096, and 8192, and see results\n");
exit(1);
}
strcpy(data_filename, argv[1]); // input data filename
avg_chunk_size = atoi(argv[2]);
min_chunk_size = atoi(argv[3]);
max_chunk_size = atoi(argv[4]);
、このコードスニペットを持っています。 > 8192ボディはファイル名であり、他の人がチャンクはパラメータであり、2048 65535
チャンク本体
私の質問私はプログラムの実行中に入力をしたい、コマンドラインパラメータをたくないです。どうやってするの。ここで
まず、使用する言語(CまたはC++)を調べます。 –
C++言語... – Anand
その後、実際にC++コードを書くことから始められます。つまり、エラーが発生しやすい 'char'配列の代わりに' std :: string'を使用し、Cライブラリ 'printf()'の代わりに 'std :: cout'に出力を出すことを意味します。対話的に入力を読み込むには 'operator ::'を 'std :: cin'と一緒に使うと、C++の本でこれを行う例がたくさんあります。 –