FILE * file;
file = fopen(argv[2] , "r");
float val;
if (file) {
while (fscanf(file, "%s", str)!=EOF){
val = atof(str);
root = insert(root, val);
}
fclose(file);
}else{
exit(1);
}
这是我现在的代码的一部分。我试图改变它,以便它将从stdin而不是从命令行读取。例如,运行程序将是" ./ a.out x< file.txt的"而不是" ./ a.out x file.txt"。
答案 0 :(得分:0)
不使用fopen()
打开文件,而是使用fdopen()
调用来获取位于文件描述符顶部的FILE *
以用于标准输入。那是文件描述符0,或者你可以使用STDIN_FILENO
标题中的文字unistd.h
,如果你想让你的程序更容易阅读。它看起来像这样:
file = fdopen(STDIN_FILENO, "r");
你的程序的其余部分保持不变。