ich diesen Code-Schnipsel haben,Ich möchte Laufzeiteingabe anstelle von Befehlszeilenargument nehmen, wie es geht?
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]);
dieses Programm Kommandozeilen-Argument,
zB. Dateinamen und andere sind Chunk Parameter
meine Frage ist, möchte ich nicht Kommandozeilenparameter> Chunk Körper 8192 2048 65535
wo Körper, ich möchte Eingang nehmen, während das Programm ausgeführt wird. wie es geht.
Der erste Schritt ist, herauszufinden, welche Sprache Sie verwenden möchten: C oder C++. –
C++ Sprache ... – Anand
Dann können Sie beginnen, indem Sie tatsächlich C++ - Code schreiben. Das bedeutet, anstelle von fehleranfälligen 'char'-Arrays' std :: string' zu verwenden und Ausgaben an 'std :: cout' zu senden, anstatt die C-Bibliothek' printf() 'zu verwenden. Und um Eingaben interaktiv zu lesen, benutzen Sie 'operator >>' mit 'std :: cin', und Sie werden viele Beispiele dafür in Ihrem C++ Buch finden. –