通过键盘而不是命令行参数输入文件名?

时间:2013-03-09 11:00:09

标签: visual-c++

实际上下面的程序是针对称为Rabin-IDA的分散算法;这个算法将数据分成N个部分,然后从M个部分重新组合(这样M<N)。

因此,下面的程序需要命令行参数,这些参数由Project properties / Debugging输入。 这个参数是文件名,程序执行时将文件吐出到N个文件中,然后从M个分割文件重新组合,并将其放在另一个文件中,该文件也应该将其名称作为参数传递。

现在我的问题是,如何让这个程序通过键盘输入文件名?(我的意思是用户从屏幕输入文件名而不是命令行参数)

下面的代码只是程序的主要功能,以及此链接中的全部内容(http://www.juancamilocorena.com/home/projects)信息分散算法Rabin-IDA。

#include "include.h"

void __cdecl _tmain(int argc, TCHAR *argv[])
{
DWORD ini=GetTickCount();
try
{
if( argc == 3 ) //recombine
{
RabinIDA rabin=RabinIDA(17,10);
long long size=GetFileSize(argv[1]);
int f[]={0,2,3,5,6,8,9,11,14,15};
rabin.recombine(argv[1],
f,
argv[2],
size);
}
else if(argc == 2)
{
RabinIDA rabin=RabinIDA(17,10);
rabin.split(argv[1]);
}
else
{
printf("Error. To split a file pass a parameter with the file to be splitted\n");
printf("To recombine the file give the name of the original file and the output file\n");
printf("The name of the file is used to get the size of the original file only, in a production\n");
printf("environment the length of the original file and the id of the share must be stored along with the share");
return;
}
printf("%d\n",GetTickCount()-ini);
}
catch (int)
{
PrintLastError(_T("MAIN CATCH"));
}
}

1 个答案:

答案 0 :(得分:0)

如果要从控制台获取文件名,可以执行以下操作:

cout << "Enter file name: ";
string filename;
getline(cin, filename);