使用C中的文本文件完成方程式

时间:2019-04-09 08:27:48

标签: c math

我需要编写一些代码来从文本文件中读取方程式,并将答案写入新的方程式,这样我就完全陷入困境了

我已经设法阅读问题并在终端将其打印为字符,仅此而已。 这个新代码甚至无法做到这一点。

对于那些询问的人,问题的确切措辞是这样的:

“读取输入文件:questions.txt;并生成一个程序,该程序创建包含以下内容的输出文件Answers.txt 问题和问题文件中每一行的答案。 例如,如果问题所在的行是: 5 * 5 答案文件应显示为: 5 * 5 = 25 允许以下操作:+,-,*,/,%以及正确的操作顺序。还至少允许2个 运算符(3个操作数),例如: 3 + 5 * 5 = 28英寸

我的主要问题是从文本文件中读取方程并将其分为数字和运算符

FILE *fp;
int a, b, c, ch, i, number[100];
char input[5];

fp = fopen ("questions.txt", "r");

while(1)
{
    ch = fgetc(fp);
    if (ch == EOF)
    {
        break;
    }
    else
    {
        input[i] = ch;
    }
}
fclose(fp);
printf("%s", input);

}

2 个答案:

答案 0 :(得分:0)

有错误:

  • 检查文件已正确打开:if (fp != NULL)
  • i = 0;从一开始,现在我们不知道价值
  • input[i] = ch; => input[i++] = (char)ch;
  • if (ch == EOF) => if (ch == EOF && i < 4) 4,因为5-1并将其移至const或macro
  • input[i] = '\0';休息片刻之后

答案 1 :(得分:0)

您需要像通常一样,以普通的fopen('questions.txt', 'r')在读取模式下打开要读取的文件。接下来,您需要fopen('newFile.txt', 'w')w写入模式写入。使用while循环获取{。{1}}末尾的getc(fileToRead),并用... != EOF来获取questions.txt文件的每个字符,然后写入newFile.txt 。 printf("%c", c)用于打印从questions.txt中读取的每个字符。

FILE *fileToRead, *fileToWrite;
int c;

//open the questions.txt file in read mode
*fileToRead = fopen ("questions.txt", "r");
//create newFile.txt and open it in write mode
*fileToWrite = fopen ("newFile.txt", "w");

while ((c = getc(fileToRead)) != EOF) {
    putc((char)c, fileToWrite );
    printf("%c", (char)c);
}
fclose(fileToRead);
fclose(fileToWrite);