【发布时间】:2019-04-26 19:03:36
【问题描述】:
我正在尝试从文本文件中读取数据并在有人进入房间和有人离开房间时打印。文本文件是教授帮助我们收集的传感器数据。该文件包含传感器检测到的角度和范围(他在文本文件中将“角度”拼写为“天使”)。
我遇到的问题是程序会读取文件并打印我想要的内容,但它不会停止读取文件。我还需要添加一个计数器,每次有人进来时都会加一个,每次有人出去时都会减一个,但我无法添加计数器并让它打印,直到我修复代码并让它停止阅读文本文件。我当前的代码如下。请帮我解决这个问题,谢谢!!
#include <stdio.h>
int main() {
FILE *fp;
FILE *op;
int time;
int range;
float i;
float angel;
char str;
fp = fopen("/home/chris/Desktop/test.txt", "rt");
op = fopen("/home/chris/Desktop/Pro.csv", "w");
i=0;
while((str = getc(fp)) != EOF) {
fscanf(fp,"range: %d, ",&range);
fscanf(fp,"angel: %f,",&angel);
if (angel == -10.75)
{
if(range<4100) {
printf("Someone has entered the room\n");
}
}
if (angel == -10.75)
{
if (range>4100 && range<6000)
printf("Someone has left the room\n");
i++;
}
}
fclose(fp);
fclose(op);
return 0;
}
【问题讨论】:
-
您真的想在循环的每次迭代中丢弃输入的一个字符吗?如果没有,那么根本不要使用
getc。只需检查fscanf返回的值。
标签: c