[@ tl; dr]我有Visual Studio Ultimate 2013和Eclipse Neon v2(C ++), 我需要使用DOS格式重定向我的程序的输出,但是 我不知道怎么做。
我在Windows btw。
好的..所以我有这个课程作业,我必须写一个这样的程序:
#include <iostream>
#include <string>
using namespace std;
/* Check if the Character is lower case or not */
bool checkLowerCase(char c) {
if (c >= 'a' && c <= 'z') return true;
return false;
}
/*
* If there is any lower case letter, it will replace it will a upper case.
* example:
* "Tauros" will become "TAUROS"
* "auHU" will become "AUHU"
*/
string fixer(string s)
{
char right = ('a' - 'A');
string a = s;
for (unsigned int i = 0; i < a.length(); i++)
{
if (checkLowerCase(a[i])) {
a[i] = a[i] - right;
}
}
return a;
}
int main(void)
{
while (1) //infinite loop
{
string line;
getline(cin, line);
if (!cin) { //Professor wants us to only check end of input like this
return 0;
}
line = fixer(line);
cout << line << endl;
}
}
输入是:
aaaaaa
bbbbbb
cccccc
输出结果为:
aaaaaa
AAAAAA
bbbbbb
BBBBBB
cccccc
CCCCCC
感谢您阅读此内容。好的,所以这就是我的问题。 输出都搞砸了,所以我需要将输出重定向到其他地方(至少是为了测试)。
我知道如何使用,将每一行保存在一个String数组中,如果需要重新分配然后打印阵列上的内容,但不幸的是,我的讲师要求我们只包括和 哦,我不知道它是否重要,但我们可能不会使用char *,只能使用类字符串。
我的讲师告诉我们,我们必须使用DOS格式。但我不知道该怎么做。如果有人可以告诉我如何重定向输入或者输出很简单......
我的PC上有Eclipse C ++(工作小故障)和Visual Studio Ultimate 2013(工作正常)。
[编辑]我在Windows上。
再次:我可能只包括和
有关更多信息,请参阅他在DOS格式上的幻灯片。
*For testing purposes one redirect to/from a file
*DOS formatting will have unexpected consequences
– The end-of-line is the CR-NL combination
– A line read from the file will end with CR
– The CR character is the command to erase the
previous line!
./main < infile.txt Input is from infile.txt
./main > outfile.txt Output is to outfile.txt
./main < infile.txt > outfile.txt Both input and output are redirected
答案 0 :(得分:0)
好的,所以......我找到了帮助我的指示:
https://msdn.microsoft.com/en-us/library/ms235639.aspx
我在VisualStudio中打开了我的项目文件夹,创建了2个文件。
input.txt中
output.txt的
我打开了我在PC上的VS2013开发人员命令提示符。
cd ["C://my_project_path"] //go to my project folder
cl /EHsc file.cpp
/*
cl /EHsc will compile my program (I think it only compiles one file at a time.
I have yet to test it).
*/
file < input.txt > output.txt // this command will run my program
所以当我像这样运行我的程序时...我的程序将读取input.txt作为标准输入,而不是等待键盘的输入。当我尝试将某些东西打印到输出时,它会写在output.txt上。
[编辑]在我粘贴的链接的末尾,有关于如何编译多个文件的解释以及/ EHsc做得非常出色