Как я могу повторить один пиксель тензора для всех пикселей в новом тензоре?

Ну, предположим, что вы находитесь в командной строке в среде Windows, вы можете использовать переадресацию труб или команд. Например,

commandThatOutputs.exe > someFileToStoreResults.txt

или

commandThatOutputs.exe | yourProgramToProcessInput.exe

В вашей программе вы могли бы использовать стандартные функции ввода C для чтения других программ (scanf и т. Д.): http://irc.essex.ac.uk/www.iota-six.co.uk/c/c1_standard_input_and_output.asp . Вы также можете использовать пример файла и использовать fscanf. Это также должно работать в Unix / Linux.

Это очень общий вопрос, вы можете включить более подробную информацию, например, какой тип вывода (просто текст или двоичный файл?) И как вы хотите обработать его.

Edit: Hooray clarification!

Перенаправление STDOUT выглядит бесполезным, мне приходилось делать это в .NET, и это давало мне все виды головные боли. Похоже, что правильный способ C - это порождать дочерний процесс, получить указатель на файл, и внезапно у меня болит голова.

Таким образом, это взломать, который использует временные файлы. Это просто, но это должно сработать. Это будет хорошо работать, если скорость не является проблемой (удар по диску медленный) или если он выбрасывается. Если вы строите корпоративную программу, просмотр перенаправления STDOUT, вероятно, лучше всего, используя то, что рекомендовали другие.

#include 
#include 

int main(int argc, char* argv[])
{
    FILE * fptr;                    // file holder
    char c;                         // char buffer


    system("dir >> temp.txt");      // call dir and put it's contents in a temp using redirects.
    fptr = fopen("temp.txt", "r");  // open said file for reading.
                                    // oh, and check for fptr being NULL.
    while(1){
        c = fgetc(fptr);
        if(c!= EOF)
            printf("%c", c);        // do what you need to.
        else
            break;                  // exit when you hit the end of the file.
    }
    fclose(fptr);                   // don't call this is fptr is NULL.  
    remove("temp.txt");             // clean up

    getchar();                      // stop so I can see if it worked.
}

Обязательно проверьте права на доступ к файлам: прямо сейчас это просто выкинет файл в том же каталоге, что и exe. Возможно, вы захотите изучить /tmp в nix или C:\Users\username\Local Settings\Temp в Vista или C:\Documents and Settings\username\Local Settings\Temp in 2K/XP. Я думаю, что /tmp будет работать в OSX, но я никогда не использовал его.

0
задан david 19 March 2019 в 22:28
поделиться