Замена стандартного ввода в куске кода - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть кусок кода, который использует стандартный ввод.Когда я запускаю программу из командной строки, я передаю ей местоположение wav-файла, т.е.функции.

Как бы я заменил stdin в коде вводом каталога и местоположения файла?

Другими словами, как мне жестко программировать '/ Users / username / Desktop / music.WAV 'в две разные функции C.

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

Я думаю, что вы ищете freopen .

Если я правильно понимаю, вы читаете имя файла из argv[1] и вызываете freopen ():

freopen(argv[1], "r", stdin);
0 голосов
/ 10 февраля 2011

Не то чтобы я, конечно, хотел бы поощрять проводку…

Похоже, вы хотите определить местоположение файла и ссылаться на него из нескольких мест?

Вы можете # определить путь в заголовке и затем включить его в несколько файлов.

1007 * Е.Г. *

header.h

#define FILE_LOCATION "/Users/username/Desktop/music.wav"

myProgram.c

#include "header.h"

void functionA() {
    fopen(FILE_LOCATION, ...);

    /* 
     * etc ..
     */
}

void functionB() {

    printf("The file is %s\n", FILE_LOCATION);

    /* 
     * etc ..
     */
}

myOtherProgram.c

#include "header.h"

void someOtherFunction() {
   doSomethingWith(FILE_LOCATION);
}

void doSomethingWith(char *fileLoc) {

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