0

我正在尝试在 Visual Studio 社区 2017 中创建类似于在线竞争网站(Hackerearth.com、hackerrank.com 和 ideone.com)的环境以进行编码练习。

检查这个https://ideone.com/fuSOVO

以下是竞争性编程中 c++ 代码中大多数问题的标准结构。

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

int main()
{
    int t;
    cin >> t;
    string s;
    while (t--) {
        cin >> s;
        cout << " Hello " << s << "\n";
        cin.get();
    }   
}

input:
5
Sam
Kiara
Victor
Riley
Diva

output:
Hello Sam
Hello Kiara
Hello Victor
Hello Riley
Hello Diva

几乎所有有竞争力的编程网站都使用标准输入作为默认输入,标准输出作为默认输出,就像上面一样。

我已使用本指南https://www.quora.com/Is-there-a-way-to-compile-and-run-C%2B%2B-in-Sublime-Text/answer/Shubham-Agrawal-131 ?srid=n9sL在 Sublime Text 中设置环境。它工作得很好。现在我想在 Visual Studio Community 2017 中进行同样的设置。

我按照本指南将输入管道输入到 c++ 程序中以在 Visual Studio 中进行调试,但出现错误。

'FirstProject.exe' (Win32): Loaded 'F:\Visual Studio\FirstProject\Debug\FirstProject.exe'. Symbols loaded.
'FirstProject.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'FirstProject.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'FirstProject.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'FirstProject.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp140d.dll'. Cannot find or open the PDB file.
'FirstProject.exe' (Win32): Loaded 'C:\Windows\SysWOW64\vcruntime140d.dll'. Cannot find or open the PDB file.
'FirstProject.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbased.dll'. Cannot find or open the PDB file.
The program '[3764] FirstProject.exe' has exited with code 0 (0x0).

我知道我可以使用文件系统,但是当我必须将代码从本地系统上传到在线编辑器时,我必须更改代码以匹配那些站点的环境。我想在本地创建相同的环境,这样我就不必每次在网站上提交时都更改代码。

4

1 回答 1

0

添加

输入.txt

到项目并试试这个

int main(int argc, char *argv[]) {
try
{
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable: 4996) //4996 for _CRT_SECURE_NO_WARNINGS equivalent
    freopen("intput.txt", "r", stdin);
#pragma warning(pop)
#endif

    int n; // number of workshops
    cin >> n;

}
catch (...) {
    cout << "Error" << endl;
}
#ifdef _MSC_VER
fclose(stdin);
#endif
return 0;
}

#ifdef 将导致代码不被 VS 之外的编译器使用

于 2017-07-24T18:05:01.687 回答