实现一个从中读取数学表达式的算法 标准输入,如果表达式为,则写入标准输出 正确括号。
我制作了代码,但我不知道我是否可以使用该文件。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
FILE *citire, *scriere;
char expr[100];
int fe=0,i;
citire = fopen("in.txt", "rb");
scriere = fopen("out.txt", "wb");
fscanf(citire, "%s", &expr);
//input
i = 0;
while (expr[i] != '\0')
{
if (expr[i] == '(')
{
fe++;
}
else if (expr[i] == ')')
{
fe--;
if (fe < 0)
break;
}
i++;
}
//output
if (fe == 0)
{
fprintf(scriere, "DA\n");
}
else
{
fprintf(scriere, "NU\n");
}
fclose(citire);
fclose(scriere);
return 0;
}
答案 0 :(得分:0)
要从标准输入/输出读取/写入,请替换此
citire = fopen("in.txt", "rb");
scriere = fopen("out.txt", "wb");
由此
citire = stdin;
scriere = stdout;
并将两次调用放到fclose()
。
然后像这样调用程序
./a.out <in.txt >out.txt
或者您可以完全删除FILE*
个变量并从使用常规f*()
函数切换到使用标准I / O相关版本:
fscanf()
- &gt; scanf()
fprinf()
- &gt; printf()