我在Mac OSX上编写了一个小型C程序,它执行以下步骤:
在步骤1和2之间,我想提示用户并等待某种键盘输入以发出"继续进行到步骤2"的信号.问题是当使用命令调用程序时,stdin已被重定向:
$ ./simple < input.in
Run Code Online (Sandbox Code Playgroud)
我想在读取文件后将stdin重定向到键盘,我不知道该怎么做.我试过用
fclose(stdin);
freopen("newin", "r", stdin);
Run Code Online (Sandbox Code Playgroud)
但是stdin之后没有从键盘上读取.任何有关如何做到这一点的建议将不胜感激.
还有一些要点:
int main(void) {
// STEP 1
int array[ARRLEN];
readinput(array, ARRLEN);
// WAIT FOR KEYBOARD INPUT TO PROCEDE
// redefine stdin to keyboard
fclose(stdin);
freopen("newin", "r", stdin);
char c[5];
char cmp[5] = ".";
puts ("Enter text. Include a dot ('.') in a sentence to exit:");
while (1) {
fgets(c, sizeof(c), stdin);
printf("c = %s\n", c);
// if (strcmp(c, cmp))
// break;
sleep(1); …Run Code Online (Sandbox Code Playgroud)