小编Jac*_*cob的帖子

在 Unix 中使用文件重定向后,如何重新定义 stdin 以指向控制台?

我在 Unix 中工作,我应该首先通过重定向读取文本,然后要求用户输入特定字符并计算它在字符数组中出现的次数。

const int MAX = 8000;
int input = 1;
int i = 0;
char text[MAX], letter;
while(input != 0)
{
    scanf("%c", &text[i]);
    if(text[i] == '0')
        input = 0;
    i++;
}
printf("\n%s",text);

printf("\nEnter a letter to search for in the text: ");
scanf("%c", &letter)
Run Code Online (Sandbox Code Playgroud)

目前,我正在通过重定向打印正确的文件,但是我的第二个文件scanf被跳过。我使用以下命令重定向文件:./a.out < filename.txt

如果我尝试打印该字符,letter那么它将不会产生任何结果。\n它必须仍然从文本文件的空行中读取。如何阻止scanf读取同一文本文件并让我在控制台中从键盘输入字母?作为一项作业,我必须使用该命令./a.out < filename.txt

c unix

5
推荐指数
2
解决办法
1920
查看次数

标签 统计

c ×1

unix ×1