我需要编写一些代码来从文本文件中读取方程式,并将答案写入新的方程式,这样我就完全陷入困境了
我已经设法阅读问题并在终端将其打印为字符,仅此而已。 这个新代码甚至无法做到这一点。
对于那些询问的人,问题的确切措辞是这样的:
“读取输入文件: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);
}
答案 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);