Почему моя программа на C ++ 11 работает только с Linux и Ma c, но показывает ошибку на Windows? - PullRequest
0 голосов
/ 07 мая 2020

Я сделал простую программу на C ++ 11, которая берет текст из одного файла .txt (например, input.txt) и вставляет его в другой файл .txt (например, output.txt) с номерами строк, напечатанными перед текст.

Вот как выглядит вывод:

image

Проблема в том, что программа работает только на Ma c и Linux. На Windows отображается следующая ошибка:

Выходной файл output.txt не найден

EDIT: вот скриншот ошибки:

image

Программа выполняется в терминале, где вы вводите пути как к входным, так и к выходным файлам.

Может кто-нибудь, пожалуйста, помогите мне понять, почему этот код работает плавно в одной системе, но не работает в другой?

Мой код ниже:

#include <fstream>

int main(int argc, char *argv[]) { 
    std::ifstream in(argv[1]); 
    std::ofstream out(argv[2]); 
    int p=1, i=1;
    for (char b; in.get(b);) {
        if (i==1){
           out<<p<<" ";
           i=0;}
    out<<b;
    if(b=='\n') { 
        i=1;
        ++p;}}

    out.close();
    in.close(); 
}

1 Ответ

0 голосов
/ 07 мая 2020

Вы запускаете свое приложение как: application.exe input.txt output.txt, убедитесь, что они существуют и находятся в том же месте, что и приложение

Внимательно проверьте имена файлов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...