每隔一段时间改变某个参数的c程序怎么写?

2024-12-17 18:31:47
推荐回答(2个)
回答1:

把要实现的目的说清楚一点哦 !
什么固定通配符?

你的递增1不知道会不会改变位数?如果不改变位数的话好办:
#include
#include
#include

void main()
{
FILE* file;
char temp[1024];
int lineIndex = 3;
int res = 0;
//int nCount = 0;
while(1) //无限循环 while(nCount<100)可设定循环100次
{
for(int i=0;i<5;i++)
Sleep(60000); //等待时间, 单位毫秒,最大60秒,循环5次为5分钟
//nCount++;
int nPos = 0;
if ((file = fopen("test.txt", "r+")) == NULL)
{
printf("\aError opening test.txt\n");
getch();
exit(2);
}

for(i=0; i {
fgets(temp, 1024, file); //读取第i+1行
nPos += strlen(temp); //计算读取字符个数,写入前必须指定写入流位置
}

fgets(temp, 1024, file); //读取第lineIndex行数据
res = atoi(temp) + 1; //字符串转化成int型整数并递增1
itoa(res, temp, 10); //10进制数转化成字符串

fseek(file, nPos, SEEK_SET); //指定写入流位置
fprintf(file, "\n%s\n", temp); //写入,如果增位的话,会替代后面的字符

if (fclose(file) == EOF)
{
printf("\aError closing test.txt\n");
exit(3);
}
}
exit(0);
}

如果会改位数的话,比如99增加为100,则会替代后面的字符。上述方法不可行,需要先把txt所有内容全部读取出来,修改之后再全部重新写进去!稍微复杂一点!

回答2:

用库函数localtime()或者其它实现定时.
先事先计算出那个参数的offset,然后,每隔一段时间open一下,然后,fseek到offset处再fprintf好了.
具体函数用法一搜就好了.