簡體   English   中英

如何在 windows 的命令行中讀取 input.in 文件

[英]How do I read input .in files in command line on windows

我完成了我的代碼,但問題是我不知道如何根據給定的說明對其進行測試。

講師為我們提供了3具有以下值的輸入文件:

文件 1:33 33 20

文件 2: 5 7

文件 3:18 18 15

我應該采用這些值並使用這些存儲的值創建事件對象。 問題是講師在Ubuntu上給出了測試方法,她展示了如何在命令行中輸入文件,如:

 ./sApp < simulationShuffled3.in

所以我真的很困惑我應該如何讓它工作。 我目前正在使用帶有終端附件的 Windows 控制台、VStudios 和 sublime text。

我目前正在使用的代碼來自我的課程筆記中的一個例子是

while (getline(cin >> ws, aLine)) {   // while (there is data)
    stringstream ss(aLine);
    ss >> arrivalTime >> processingTime;
    Event newEvent = Event('A',arrivalTime,processingTime);
    eventPriorityQueue.enqueue(newEvent);
}

從 Windows [&/or] Linux 中的stdin輸入讀取輸入

您可以通過三種方式執行此操作:

  1. 在命令提示符 (windows) 中
  2. 在 Powershell (windows/linux)
  3. 在 WSL & Linux

1: 在 Windows Cmd

type input.in | python file_requiring_input.py              # in python

type input.in | go run file_requiring_input.go              # in go

type input.in | node file_requiring_input.js                # in js

javac file_requiring_input.java && 
type input.in | java file_requiring_input                   # in java

g++ file_requiring_input.cpp && 
type input.in | a.exe                                       # in cpp

gcc file_requiring_input.c && 
type input.in | a.exe                                       # in c

另一種方式

python file_requiring_input.py < input.in                   # in python

g++ file_requiring_input.cpp && 
a.exe < input.in                                            # in cpp

2:在Powershell

gc .\input.in | python file_requiring_input.py              # in python

g++ .\file_requiring_input.cpp ; 
gc .\input.in | .\a.exe                                     # in cpp

gcGet-Content的縮寫。 gc的其他別名是cattype 這意味着所有三個名稱都可以用作替換或 gc

3: 對 windows 使用wsl //Linux 命令

cat input.in | python file_requiring_input.py                # in python

g++ file_requiring_input.cpp && 
cat input.in | ./a.out                                       # in cpp

另一種方式

python file_requiring_input.py < input.in                    # in python

g++ file_requiring_input.cpp && 
./a.out < input.in                                           # in cpp

已經編輯了代碼以測試所有內容。 如果我錯了或者要添加更多內容,請糾正我。 此外,input.in 更普遍地是一個文本文件,因此您可以根據需要創建 input.txt 文件,它的工作原理相同

好吧,由於這是一項任務,因此我不會為您提供現成的代碼。 相反,我只會為您指出正確的方向。

在Windows中,您可以為可執行文件提供參數,例如在Command Prompt用空格分隔:

C:\Assignment> Test.exe file1.in file2.in file3.in

而且,它也將在Ubuntu

因此,您需要研究Command Line ArgumentsFile Handling ,從文件讀取; 並且,您必須將這些從文件讀取的字符串轉換為整數。

命令行參數: http : //en.cppreference.com/w/c/language/main_function

文件處理: http //en.cppreference.com/w/cpp/io/basic_fstream

這是讀取文件( std::ifstream )的最小示例:

我在C:\\Test\\Test.txt有一個測試文件,其內容如下:

11 22
12 23
23 34

這是main.cpp進行測試:

#include <iostream>
#include <fstream>
#include <string>

int main( int argc, char *argv[] )
{
    const std::string filename { R"(C:\Test\Test.txt)" };

    std::ifstream ifs { filename };
    if ( !ifs.is_open() )
    {
        std::cerr << "Could not open file!" << std::endl;
        return -1;
    }

    int arrivalTime    { 0 };
    int processingTime { 0 };

    while ( ifs >> arrivalTime >> processingTime )
    {
        std::cout << "Arrival Time : " << arrivalTime << '\n'
                  << "Processing Time : " << processingTime << std::endl;
    }

    ifs.close();
    return 0;
}

輸出:

到達時間:11
處理時間:22
到達時間:12
處理時間:23
到達時間:23
處理時間:34

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM