gpt4 book ai didi

c++ - 命令行测试程序 -> 只生产第一部分

转载 作者:行者123 更新时间:2023-11-28 01:54:00 25 4
gpt4 key购买 nike

类里面的作业是测试提供的参数。编写(添加到本主题)的代码有效(在它运行的意义上),但它只产生第一个单词或一组单词。

代码:

#include <fstream>
#include <iostream>
using namespace std;

int main ( int argc , char *argv[] )
{
if(argc > 1 )
{
cout << argv[1] << endl;
}
else
{
return -1;
}
ifstream infile(argv[1]);
if (infile.is_open())
{
string words;
while (infile >> words)
{
cout << words <<endl;
}
}
else
{
return -1;
}
infile.close();
}

给定的行是:

“这是真的”“这是事实”

它(代码)产生的结果是:

这是真的

我想要的结果是:

这是真的,这是事实

另一个例子:

给定行:

检查这个东西是否有效

使用此代码的输出:

检查

想要的输出:

检查这个东西是否有效

我的问题是我是否没有在我的代码中添加一些会产生整行的东西。另外,我知道我的代码不会在输出中添加“,”,但我想一次只担心一个问题。

更多信息:

文件被读取,如果没有 arg,那么它不会产生任何东西,如果只有一个 arg,它也可以工作。他的代码停止工作超过一个 arg 和引号。

最佳答案

这一行 cout << argv[1] << endl;会将您的第一个命令行参数(在参数零之后,即应用程序名称)打印到屏幕上。用双引号引起来的命令行参数被视为单个参数,因此对于您的第一个示例 argv[1] = This is true第二个 argv[1] = check .这就是为什么你看到你所看到的。

如果你理解了这一点,你应该能够弄清楚如何让它打印出整个东西。即命令行参数 > 1。

关于c++ - 命令行测试程序 -> 只生产第一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41879479/

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