in_buf) { -6ren">
gpt4 book ai didi

C++:读取文件时程序卡住。为什么?

转载 作者:行者123 更新时间:2023-11-28 08:14:29 28 4
gpt4 key购买 nike

我正在尝试用 visual studio 编译一个 C++ 软件。

要运行程序,我使用此命令行:

ABC 0.85  x.txt < x.txt

软件看起来像这样:

int main(int argc, char ** argv)
{
//main variables
float min_sup = atof(argv[1]); //minimum support
string filename = argv[2]; //input file name

cout << "Hello" << argv << " " << endl;

if(argc < 2)
{
cout << "[Error] Usage: <min> <input file> < <input file>" << endl;
cout << "E.g: ./ABC.exe 0.85 input.txt < input.txt" << endl;
system("PAUSE");
return 1;
}

//checking min_sup value
if(min_sup <= 0 || min_sup >= 1)
{
cout << "[Error] Minimum must be between 0 and 1 exclusively." << endl;
system("PAUSE");
return 1;
}

int in_buf;
while(cin >> in_buf)
{

.....

当我运行该软件时,它卡在了:

 while(cin >>  in_buf)

你知道问题出在哪里吗?是文件读取方式有问题吗?

我在 Windows 7 64 位上运行代码。

最佳答案

ABC 0.85  x.txt < x.txt
^

你有一个额外的空间。您正在向程序传递三个参数。您需要两个参数和一个流重定向。

ABC 0.85  x.txt <x.txt

您可以显示argc 来验证这一点。

为什么程序需要“x.txt”参数的文件名?我想不出你需要它的任何理由。此外,在您验证计数之后之前,您不应该阅读参数。

关于C++:读取文件时程序卡住。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099523/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com