C 在一段代码中替换stdin

C 在一段代码中替换stdin,c,stdin,C,Stdin,我有一段使用stdin的代码。当我从命令行运行程序时,我将wav文件的位置传递给它,即/Users/username/Desktop/music.wav 代码仅用C编写。stdin变量在2个函数中运行 如何用文件目录和位置的输入替换代码中的stdin 换句话说,如何将“/Users/username/Desktop/music.wav”硬编码为两个不同的C函数 我想你在找 如果我理解正确,您可以从argv[1]读取文件名并调用freopen(): 当然,我并不想鼓励硬接线 听起来您希望定义文件位

我有一段使用stdin的代码。当我从命令行运行程序时,我将wav文件的位置传递给它,即/Users/username/Desktop/music.wav

代码仅用C编写。stdin变量在2个函数中运行

如何用文件目录和位置的输入替换代码中的stdin


换句话说,如何将“/Users/username/Desktop/music.wav”硬编码为两个不同的C函数

我想你在找

如果我理解正确,您可以从
argv[1]
读取文件名并调用freopen():


当然,我并不想鼓励硬接线

听起来您希望定义文件位置并从多个位置引用它

您可以在头文件中定义路径,然后将其包含在多个文件中

例如

标题.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) {

}

@西蒙妮。真正地这不只是一个传递字符串的问题吗?@Simone。另外,这似乎是给stdout的。“这对stdin有用吗?”西蒙尼说。六羟甲基三聚氰胺六甲醚。。。也许我在这里有点无知,但这是否仍然意味着我需要通过命令行将文件名作为参数传递?我想在代码中对文件进行硬编码。如果我遗漏了什么,我向你道歉。从之前的类似问题来看,他似乎在使用MacOSX
#include "header.h"

void someOtherFunction() {
   doSomethingWith(FILE_LOCATION);
}

void doSomethingWith(char *fileLoc) {

}