我正在参加C++的几个在线编程练习。
本文给出了C++中测试理解"for“循环的问题描述。
输入格式
您将得到两个正整数,a和b (a <=b),用换行符分隔。
输出格式
对于间隔[a,b]中的每个整数:
如果1 <=n <= 9,则打印它的英文表示形式。那就是“一”代表,“二”代表,等等。否则,如果n>9并且是偶数,则打印“偶数”。否则,如果n>9且是奇数,则打印“奇数”。
样本输入
8 11
样本输出
eight
nine
even
odd
我编写了如下程序,并通过了测试用例。
int main() {
int a, b;
cin >> a;
cin >> b;
string num[9] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for(int n=a; n<=b;n++)
{
if(n<=9)
cout << num[n-1] << endl;
else
if(n%2==0)
cout << "even\n";
else
cout << "odd\n";
}
return 0;
}
当我测试时,我输入了"a“和"b”的值。
当我在线提交代码时,我可以理解,测试用例被执行并显示结果。
我的问题是如何自动输入?我还想用自动化测试我的代码,而不需要在控制台输入输入。
自动化的示例代码将很有帮助。当我继续处理需要更多输入的复杂问题时,这种理解将是有帮助的,所以我不想在cin控制台手动输入,并且希望在我的笔记本电脑测试时自动完成这一点,就像在线自动测试工具所做的一样。
谢谢你的时间和帮助。
发布于 2019-11-05 06:24:53
通常,这是通过标准的文件描述符重写来实现的(我当场想出了哪个名称,并且可能会根据说话的人而有所不同)。
考虑到大多数在线编译器可能在Linux会话上运行,他们可以简单地执行以下操作。
使用(例如) gcc -o venkysmarty-exo-3
gcc -o venkysmarty-exo-3
更普遍的情况是,在大多数unix系统上,至少在运行bash时,可以使用>操作符重定向标准输出,并用于重定向标准输入。如果不使用文件名但打开了文件/管道描述符,则在描述符前面加上&(例如python max.py <& 64,其中64是文件描述符)。
在windows上,在批处理中,文件描述符可能不起作用,但basic >、<和>>操作符似乎也是这样工作的:
发布于 2019-11-05 07:44:24
所以我会用两种方式回答你的问题。第一种方法,而不是使用
cin >> a
您可以使用
int main(int argc, char *argv[])
作为您在Visual中的输入,您将转到“项目名称”属性,然后转到调试。您应该看到一些被称为命令参数的内容,您可以在其中放置任何您想要的输入。
第二种实现“自动”输入的方法是将所有输入值放入一个文件中。在那里,您可以打开文件并从文件中读取值。如果您不知道如何读取和写入文件,我建议在这里使用此链接。
http://www.cplusplus.com/doc/tutorial/files/
发布于 2020-06-25 03:12:07
此解决方案用于Visual,将您的输入输入到文本文件中。在命令行中重定向此文件的输入。
若要指定输入,请在“配置属性”下设置命令行“获取项目>属性”,选择“调试”,然后编辑“命令参数”
例如"C:\Projects\test.txt“编辑命令行中的测试输入文件,以读取"< C:\Projects\test.txt”(没有引号)
https://stackoverflow.com/questions/58705510
复制相似问题